倒排索引(Inverted Index) 是信息检索系统中用于快速查找包含某个词项的文档集合的核心数据结构。倒排索引在搜索引擎、全文检索系统以及数据库中被广泛使用,它能够极大提高查询速度,尤其是在处理大规模文本时。
1. 倒排索引的基本概念
倒排索引是一种数据结构,用于将词项(terms)映射到包含这些词项的文档集合。它的基本思路是将文档中的每个词项作为索引关键字,并记录所有包含该词项的文档编号(或其他标识)。这样,当我们需要查找某个词项时,直接通过倒排索引可以找到与该词项相关的文档,而不必逐一扫描所有文档。
结构:
倒排索引由两部分组成:
- 词典(Dictionary):存储所有出现过的词项(terms)。
- 倒排列表(Posting List):对于每个词项,记录所有包含该词项的文档ID,通常还包括其他信息(如词频、位置等)。
例如,假设我们有三个文档如下:
- 文档1:“The cat is on the mat”
- 文档2:“The dog is in the fog”
- 文档3:“The cat and the dog play”
生成的倒排索引可能如下:
词项 | 倒排列表(文档ID) |
---|---|
the | [1, 2, 3] |
cat | [1, 3] |
is |