分布式搜索技术——Elasticsearch
初始ES
什么是es
-
es是一款开源的搜索引擎,帮助我们从海量数据中快速找到所需要的内容
-
结合kibana,logstash,beats为ELK,应用在日志分析,实时监控等领域
-
es的底层是Lucene,apache的一个类库
- 易扩展
- 高性能(倒排)
- 只限于java
- 不容易水平扩展
- 不支持集群
es的优点
- 支持分布式,天然支持集群
- 水平扩展
- 提供RestFul接口,可以被任何语言调用
正向索引和到排序
-
正向索引
-
查询的时候是根据词条先找到文档,然后判断是否包含词条
-
例如Mysql采用正向索引,当有大批量数据需要进行模糊查询的时候,进行逐条扫描,效率会比较低
-
-
倒排索引
-
对文档进行分词,对词条创建索引,查询的时候先根据词条找到文档id,从而获取文档
-
文档(document)每条数据就是一个文档
-
词条(term)文档按照语义分成的词,词条是唯一的
-
es和mysql的对比
-
es
- 面向文档存储,文档数据被序列化为json格式后存储再es中
- 索引 index,相同类型的文档集合,类似于关系型数据库中的表
- 映射 mapping,索引中文档的字段约束信息,类似于表结构
- 架构
- Mysql : 事务操作,确保数据的安全性和一致性
- es:海量数据的搜索、分析、计算
es的安装
参照文档 https://juejin.cn/post/7074115690340286472