1.es索引
索引
正向索引是通过key找value,反向索引通过value找key
正向索引
-
以文档ID为关键字,表中记录文档中每个字的位置信息
-
建立索引时候结构简单,易于维护
-
检索效率低,只能在一些简单的场景下使用
反向索引
-
反向索引,也叫倒排索引
-
倒排索引一字或词为关键字进行索引,表中关键字对应的记录表记录了出现这个字或词的所有文档
-
一个表项就是一个字断,它记录改文档的ID和字符在该文档的位置情况
-
优缺点
- 查询时候可以一次得到查询关键字所对应的所有文档,查询效率高于正排索引
- 由于每个字或词对应的文档数量在动态变化,所以倒排表的建立和维护都较为复杂
倒排索引组成
倒排索引主要由单词词典(Term Dictionary)和倒排列表(Posting List)组成
单词词典
- 记录所有文档的单词,一般比较大,记录单词到倒排列表的关联信息。
- 单词词典一般用B+Trees来实现,存储在内存

倒排列表
- 倒排列表记载了出现过某个单词的所有文档的文档列表及单词在该文档出现的信息和频率(作关联性算分),没条记录记为一个倒排项(Posting)。
- 倒排列表存储在磁盘文件中,主要包含以下信息
- 文档ID
- 单词频率(TF)
- 位置(Position)
- 偏移(Offset)
)
-
单词字段和倒排列表整合在一起的结构如下
索引的更新策略

常用的索引更新策略
完全重建策略、再合并策略、原地更新策略、混合策略