简述正排索引与倒排索引

wdg - October 15, 2024

正排索引 forward index

LocalId WordId NHits HitList
1 T1 1 1
1 T2 2 3,6
1 T3 1 7

“走进搜索引擎,学习搜索引擎”
分词的结果为”走进/搜索引擎/学习/搜索引擎”。
“走进”编号为”T1”,”搜索引擎”编号为”T2”,”学习”编号为”T3”

倒排索引 inverted index

也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。
它是文档检索系统中最常用的数据结构。
倒排索引是一种以关键字和文档编号结合,并以关键字作为主键的索引结构。

WordId nDocs 偏移量
T1 1 x
T2 2 a,b,c
T3 1 j,k
DocId NHits HitList
Doc1 1 1
Doc1 2 3,6
Doc1 1 7
  • 正排索引可以理解成一个定义在文档空间索引词组空间的一个映射,任意一个文档对应唯一的一组索引词
  • 倒排索引可以理解成一个定义在索引词空间文档组空间的一个映射,任意一个索引词对应唯一的一组该索引词命中的文档

字段说明

LocalId 字段:表示一个文档的局部编号。
WordId 字段:表示文档分词后的编号。
nHits 字段:表示某个索引词在文档中出现的次数。
HitList 变长字段:表示某个索引词在文档中出现的位置,即相对于正文的偏移量(使用差分序列)。
偏移量 存储对应 DocId的序列,从而实现通过关键字获取不同文档的匹配信息

偏移量
  • 按照DocId升序存放。
  • 按照索引词在文档中出现次数降序存放。
  • 记录表分块存放,块内按DocId升序存放,块间按PageRank值降序存放。