一、倒排索引(Inverted Index)
ElasticSearch引擎把文档数据写入到倒排索引(Inverted Index)的数据结构中,倒排索引建立的是分词(Term)和文档(Document)之间的映射关系,在倒排索引中,数据是面向词(Term)而不是面向文档的。
一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,有一个包含它的文档列表。
举个例子:
对以下三个文档去除停用词后构造倒排索引
倒排索引-查询过程
对上面图片中查询包含“搜索引擎”的文档,通过倒排索引获得“搜索引擎”对应的文档id列表,有1、3。
通过正排索引查询1和3的完整内容,返回最终结果。
倒排索引-组成
- 单词词典(Term Dictionary)
- 倒排列表(Posting List)
单词词典(Term Dictionary)
单词词典的实现一般用B+树,B+树构造的可视化过程网址: