Elasticsearch
Elasticsearch 是一个基于 Lucene 的分布式搜索引擎,具备高效的全文搜索、实时数据分析和数据可视化等功能。它采用倒排索引的方式来存储和搜索数据,能够快速响应用户的搜索请求,并支持水平扩展。
倒排索引
倒排索引(或者反向索引)是一种存储单词在文档或一组文档中的位置的索引方法,常用于全文搜索。
在没有搜索引擎时,我们是直接输入一个网址,然后获取网站内容,这时我们的行为是:
document -> to -> words
通过文章,获取里面的单词,此谓「正向索引」,forward index.
后来,我们希望能够输入一个单词,找到含有这个单词,或者和这个单词有关系的文章:
word -> to -> documents
于是我们把这种索引,成为inverted index,直译过来,应该叫「反向索引」,国内翻译成「倒排索引」。
为什么快
-
使用倒排索引:倒排索引是一种针对文本搜索而优化的数据结构,它将每个词与出现这个词的文档列表关联起来,这样就可以快速查找包含某些词的文档。
-
分布式:它将索引分成若干个分片,并在多台机器上进行分布式存储,这样就可以并行处理查询,提升查询效率。
怎么和数据库数据保证一致性
使用数据库监测工具canal监测数据库数据库数据变化,将变化数据的消息投递到MQ中,然后通过MQ异步更新ES中的数据。
学习ES博客推荐
https://blog.csdn.net/Andrew_Chenwq/article/details/128722692