27-5

倒排索引

倒排索引是什么?

倒排索引是一种非常重要且应用广泛的数据结构,它是现代搜索引擎的核心技术之一

它的基本思想是:将文档中的每个词语与包含该词语的文档列表关联起来

你可以把它想象成一本书后面的索引。在这本书的索引里,你不会看到“第10页有…,第11页有…”,而是会看到“人工智能:第10页、第11页、第25页…”

倒排索引就是这样一种结构,它将词语(或术语)作为(Key),将包含该词语的文档列表作为(Value)。这种“词语到文档”的映射关系与传统的“文档到词语”的映射(即正向索引)正好相反,因此得名“倒排”

倒排索引的核心构成

一个典型的倒排索引通常包含两个部分:

1. 词典

  • 作用:存储所有文档中出现过的所有不重复的词语
  • 结构:通常是一个经过排序的列表或哈希表。它能让你快速定位到某个词语在倒排列表中的位置。

2. 倒排列表

  • 作用:存储每个词语出现的文档ID列表,以及该词语在文档中的位置频率等信息
  • 结构:与词典中的每个词语相对应,包含以下信息:
    • 文档ID(Document ID):包含该词语的文档的唯一标识符
    • 词频(Term Frequency):该词语在特定文档中出现的次数
    • 位置(Position):该词语在文档中出现的位置(如第几个词)。这对于处理短语查询(比如”人工智能”)非常重要