- By刘立博
- 2021-08-31 21:48:19
- 690人已阅读
正排索引
正排索引(forward index) 类似关系型数据库数据行的指针,建立的是索引到数据行的映射关系,类似于本书的目录:
ID |
内容 |
1 |
elastic是最流行的搜索引擎 |
2 |
搜索引擎是如何诞生的 |
倒排索引
倒排索引(inverted index) 建立的是字段到数据行的映射关系,类似于关键词索引
单词 |
ID |
Elastic |
1 |
流行 |
1 |
搜索引擎 |
1,2 |
如何 |
2 |
诞生 |
2 |
倒排索引查询流程
首先通过倒排索引获得对应的数据行主键,然后通过正排索引查找出主键对应的数据行指针,最后通过指针获取到完整的数据行信息
倒排索引组成
单词词典(term Dictionary)
单词字典一般由B+实现,数据结构由下图所示
倒排列表(Posting List)
倒排列表记录了单词对应的文档集合,由倒排索引Posting组成,主要包含以下信息:
(1)文档id: 用于获取原始信息
(2)单词频率: 记录该单词在文档中出现次数,用于后续相关性算法
(3)位置: 记录单词在文档中的分词位置(多个),用于词语搜索
(4)偏移: 记录单词在文档的开始和结束位置,用于高亮显示