倒排索引(Inverted Index)

倒排索引(Inverted Index)是信息检索中的一种索引结构,用于索引文本信息,支持快速的单词查找和匹配。

它的基本思想是:

  1. 对每篇文章进行分词,
  2. 然后收集包含每个词的文档列表,
  3. 最后按照字母顺序构建一棵前缀树。
    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,以此类推。

倒排索引具有以下主要特点:

  1. 以单词为索引,文档为数据,支持词频统计和词性标注;
  2. 可以方便地检索具体单词出现在哪些文档中以及出现频率;
  3. 对同义词或相关词没有很强的关联能力,无法进行语义扩展;
  4. 无法直接支持短语或 proximity 查询;
  5. 需要定期更新以应对文档的增加、删除与修改。

倒排索引是搜索引擎中最基本也最重要的技术之一,它支持快速的全文检索与关键词查找,是信息检索系统的基石。很多搜索技术与理论都建立在倒排索引之上。

你可能感兴趣的:(inverted-index,全文检索,lucene)