正倒排索引

572 阅读1分钟

搜索引擎

正排索引-文档id到文档内容和单词的关联

倒排索引-单词到文档id的关系

image.png

倒排索引的核心组成

  • 单词词典(Term Dictionary) :记录所有单词的文档,记录单词到倒排列表的关联关系
    • 单词词典一般比较大,可以通过B+树或哈希拉链发实现,以满足高性能的插入与查询
  • 倒排列表(Posting List):记录了单词对应的文档集合,由倒排索引项组成
    • 倒排索引项
      • 文档ID
      • 词频TF - 该单词在文档中出现的次数,用于相关性评分
      • 位置Position - 记录单词在文档中分词的位置,用于语句搜索(phrase query)
      • 偏移(Offset) - 记录单词的开始结束位置,实现高亮显示

单词Elasticsearch的例子

image.png

Elasticsearch的倒排索引

  • Elasticsearch 的 JSON 文档中的每个字段,都有自己的倒排索引
  • 可以指定对某些字段不做索引
    • 优点:节省存储空间
    • 缺点:字段无法被搜索