深入理解倒排索引

2017-02-24  本文已影响378人  helinyu

倒排索引:由单词集合(词典)和倒排列表集合(倒排文件)构成;
词典和倒排文件以及作为这两者构成要素的“单词”和“倒排列表”的关系。

倒排索引结构

词典中的每个单词持有一段“引用信息”,“引用信息”指明了对应着该单词的倒排列表。
通过这段索引信息,我们可以从词典中的各个单词那里获取到相应的倒排列表。

从倒排索引中查找单词#

查找单个单词文档:从词典中查找到该单词,通过引用信息获取倒排列表,从而获取文档。
查找多个单词文档:和查找单词文档一样,多了一步就是讲多个单词的文档进行求取交集。

文档级别的倒排索引:倒排文件只是带有“各单词都出现在文档中”信息。
(文档级别的倒排文件[document-level inverted file])
单词级别的倒排索引:倒排文件显示文件所在文档的信息和在文档的位置。
(单词级别的倒排文件[word-level inverted file])

单词级别的文件格式如下:
DocID,offset1,offset2……

🌰:上面的数据为例
从头数,单词search 是文档1(p1)中的第三个单词,是文档2(p2)中的第二个单词,因此其倒排列表是:search D1;3,D2;2


单词级别的索引文件

🌰:查找包含有search和engine的文档。
如果使用文档级别的索引文件检索同时包含有search和engine的文档,但是利用这种方法检索出来的结果未必是关于搜索引擎(search engine)的文档。

例如下面的内容和搜索引擎没有关系:
I search for a gas station because my car’s engine doesn’t start.
(因为汽车的引擎发动不了,所以我要找加油站)
这个检索到的内容就和搜索引擎没有关系了;

查找search engine(搜索引擎)的文档,用单词级别的进行查找比较合理;
单词级别的查找,同文档级别的一样进行查找,接下来还要算出两个倒排列表中文档编号的交集,接着,查找短语是还需要进一步确认一下search 和engine是否是相邻出现。

上一篇下一篇

猜你喜欢

热点阅读