Elastic Search倒排索引
倒排索引分为两块:
-
单词词典(Term Dictionary):
单词词典记录了所有分词后的单词与单词到倒排列表的关联关系,采用B+树的模型搭建 -
倒排列表
例如两个文档 梦幻西游真好玩, 好玩的游戏哪些。
这两句话经历一定得分词后变成
梦幻西游 真 好玩
和
好玩 游戏 哪些。
以单词‘好玩’为例
文档Id 文档内容 分词结果
1 梦幻西游真好玩 梦幻西游 真 好玩
2 好玩的游戏有哪些 好玩 游戏 哪些
在倒排列表中结构为
DocId TF Position Offset
1 1 2 <5,7>
2 1 0 <0,2>
代表单词‘好玩’在文档Id为1的文档中出现一次,位置是第三个分词处(position从0开始计算),
在文档Id为2的文档中出现一次,位置是第一个分词处
在搜索‘好玩’时,先从单词字典中找到好玩,然后根据倒排列表找到对应docId为1和2