Elasticsearch的简介

1.生活中的数据分类

1.结构化数据

行数据,以二维表的形式展示的数据

2.非结构化数据

没有具体结构,视频,文本,音乐文件

3.半结构化数据

xml表格办公软件,HTML

2.搜索的种类

1.结构化数据搜索

结构化数据有固定结构,我们会给他建立关系,生成二维表查询

2.非结构化数据搜索

1.顺序扫描
2.全文搜索

3.Elasticsearch介绍

1.什么Elasticsearch?

是一个高度可扩展的开源全文搜索和分析引擎,它可实现数据的实时全文搜索搜索、支持分布式可实现高可用、提供API接口,可以处理大规模日志数据,比如Nginx、Tomcat、系统日志等功能。

Elasticsearch是基于lucene开发而来的

# Elasticsearch不能完全代替数据库
# 搜索引擎式数据库

2.ES和数据库结构对比

mysql ES
库(database) 索引(index)
表(table) 类型(type)
列(字段)
真实数据行 文档(doc)

3.ES原理

1.存储数据时进行全文检索
2.全文检索后建立倒排索引

4.全文检索

将一个数据的内容转化拆分
	1.分词
	2.找到关键词
	3.搜索索引
	4.匹配,命中,计算命中率
	5.根据命中率进行排序

5.倒排索引

文档1:java 是世界上最好的语言
文档2:php 是世界上最好的语言
文档3:python 是世界上最好的语言
分词后的值(词条) 文档1 文档2 文档3
java 命中
命中 命中 命中
世界上 命中 命中 命中
最好的 命中 命中 命中
语言 命中 命中 命中
php 命中
python 命中

6.倒排索引术语

1.词条:索引最小的存储单位,拆分一组词之后,每一个字或者词
2.词典:词条存储的地方,一般在内存中

3.倒排表:记录多个词命中的次数和顺序
4.倒排文件:存储倒排表的地方,一般在磁盘中

############倒排索引介绍:https://www.cnblogs.com/ajianbeyourself/p/11280247.html########################

7.ES功能

1.分布式存储
2.全文搜索,结构化检索,数据分析
	全文搜索:select * from table;
	结构化检索:select * from table where id > 1;
	数据分析:select count(*) from table;

8.使用场景

1.大量数据存储
2.搜索数据
3.分析数据(ELK)
4.搜索高亮显示

9.ES特点

1.可以部署单点或者集群
2.高性能
3.支持分布式
4.不需要会java
5.功能丰富
6.部署简单
原文地址:https://www.cnblogs.com/Applogize/p/13472138.html