18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 倒排索引(数据库)

倒排索引(数据库)

时间:2022-12-15 20:30:01 | 来源:信息时代

时间:2022-12-15 20:30:01 来源:信息时代

    倒排索引 : 一种用来迅速检索所有包含某个查询项的文档的索引结构。对于每个查询项,在倒排文件中有包含该项的文档列表(称为倒排列表)。以图1中的文本数据库为例,查询项“James”相应的倒排列表为〈1,3,4〉,查询项“movie”的倒排列表为〈3,4〉。

记录标识文档签名
1agent James Bond1100
2agent mobile computer1101
3James Madison movie1011
4James Bond movie1110


单词倒排列表Hash
agent<1,2>1000
Bond<1,4>0100
computer<2>0100
James<1,3,4>1000
Madison<3>0001
mobile<2>0001
movie<3,4>0010


图1 包括4条记录和相应索引的文本数据库


图1中给出了所有查询项的倒排列表。为了迅速查找到某个查询项的倒排列表,需要为所有可能的查询项建立第二个索引结构、如B+-树或Hash索引。为了避免混淆,我们把用来查找查询项的索引称为词表索引。词表索引由所有可能的查询项和指向相应倒排列表的指针组成。查询包含某个查询项的文档的过程如下。首先在词表索引中查找到对应该查询项倒排列表的结点,然后找到倒排列表,匹配记录标识和文档物理地址,最后检索到相应的文档。对于包含多个查询条件的查询,可以首先找到每个查询项的倒排列表,然后取它们的交集。为了尽量减少内存的占用,可以按照倒排列表的长度从小到大进行顺序抽取,由多个查询条件析取组成的查询,需要合并所有有关的倒排列表。
以图1中的文本数据库为例,查询包含“James”的文档,首先在词表索引中查找“James”的倒排列表,从磁盘中读出倒排列表,然后读出文档1。查询包含“James”和 “Bond”的文档,首先要检索到查询项“Bond”的倒排列表,与查询项“James”的倒排列表相交(查询项“Bond”的倒排列表长度为2,而查询项“James”的倒排列表长度为3)。列表〈1,4〉和列表〈1,3,4〉相交的结果是〈1,4〉,也就是检索到第一和第四个文档。要查询包含“James”或“Bond”的文档,可以以任意顺序读取两个查询项的倒排列表,然后合并两个查询结果。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭