一、什么是ElasticSearch
- ElasticSearch是一款开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容
- ElasticSearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域
- ElasticSearch是elastic stack的核心,复制存储、搜索、分析数据
二、正向索引和倒排索引
- 传统数据库(如MySQL)采用正向索引:正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。
- 倒排索引:倒排表以字或词为关键字进行索引,表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置情况。
- 简单来说:正向索引在索引时通过文档去寻找关键词,而索引则是通过关键字去寻找索引
三、名词解释
-
文档:每一条数据就是一个文档,文档数据会被序列化为json格式存储在ElasticSearch中
-
词条:对文档中的内容分词,得到的词语就是词条
-
索引:相同类型的文档的集合
-
映射:索引中文档的字段约束信息,类似表的结构约束
四、MySQL与ElasticSearch的比较
-
概念对比
-
架构
- MySQL:擅长事务类型操作,可以确保数据的安全和一致性
- ElasticSearch:擅长海量数据的搜索、分析、计算