倒排索引(Inverted Index)
倒排索引(Inverted Index)是信息检索中的一种索引结构,用于索引文本信息,支持快速的单词查找和匹配。
它的基本思想是:
- 对每篇文章进行分词,
- 然后收集包含每个词的文档列表,
- 最后按照字母顺序构建一棵前缀树。
3.1 每个节点都代表一个单词,
3.2 每个单词节点都指向一系列包含这个单词的文档。
比如有3篇文档D1,D2,D3,内容如下:
- D1: Hello Claude, my name is Claude.
- D2: Hello GZ, nice to meet you.
- D3: GZ, do you know Claude?
经过分词和索引构建,倒排索引如下:
Claude: D1, D1, D3
GZ: D2, D3
Hello: D1, D2
do: D3
is: D1
know: D3
meet: D2
my: D1
name: D1
nice: D2
to: D2
you: D2
从上面可以看出,倒排索引以单词为索引,指向包含每个单词的文档列表。
这样,在查找“Claude”这个词时,可以立即找到包含它的文档D1和D3;查找“GZ”可以找到D2和D3,以此类推。
倒排索引具有以下主要特点:
- 以单词为索引,文档为数据,支持词频统计和词性标注;
- 可以方便地检索具体单词出现在哪些文档中以及出现频率;
- 对同义词或相关词没有很强的关联能力,无法进行语义扩展;
- 无法直接支持短语或 proximity 查询;
- 需要定期更新以应对文档的增加、删除与修改。
倒排索引是搜索引擎中最基本也最重要的技术之一,它支持快速的全文检索与关键词查找,是信息检索系统的基石。很多搜索技术与理论都建立在倒排索引之上。