本发明涉及一种基于文档重排序的短文档列表交集查询方法,属于数据库和信息检索领域。
背景技术:
1、对于列表交集查询的研究有很多,粗略来看,列表交集方法可以分为基于内存的交集方法和基于外存的交集方法,基于外存的交集方法将倒排列表存放于外存,因此其着重于降低存取列表所需的io次数。为此,列表通常以压缩形式存储在外存。而基于内存的方法假定列表存储于内存,其着重于提升列表交集操作的效率。目前比较经典并且比较高效的方法有intersection、svs、verification、lcsearch、limit。其中intersectiono为直接列表交集的方法,svs为对列表从短到长排序后再交集的方法,verification为直接对最短列表进行验证的方法,lcsearch为多列表同时crosscut的交集方法,limit为基于倒排索引结构的交集+验证的方法。
2、文档重排序的主要思想在于通过将连续的docid分配给相近的文档,从而可使得索引中相近的文档更集中,不相近的文档有更大的间隔,进而可对倒排索引进行更有效的压缩或提高查询的效率。
3、现有文档重排序方法多需要通过图遍历或聚类等复杂的方法进行文档重排序,需要较为复杂的离线操作。此外,多数文档重排序方法着重于查找最优的文档序,以压缩索引开销,较少考虑通过文档重排序来提升交集操作的效率。
4、因此,本发明引入简单高效的长度文档重排序,通过长度文档重排序可大幅降低列表中需要交集的范围,从而提升交集操作的效率。
技术实现思路
1、本发明要解决的技术问题是提出一种基于文档重排序的短文档列表交集查询方法。通过基于长度的文档重排序过滤掉部分不可能满足交集结果的文档,从而显著降低候选集的数量;此外,为避免较多的列表交集操作,设计交集+验证的策略,仅对前m个列表进行交集,对交集后得到的候选集直接进行验证,从而可有效提高列表交集效率
2、本发明的技术方案是:一种基于文档重排序的短文档列表交集查询方法,包括:
3、文档重排序步骤,对数据集d中文档按长度升序排序并重新分配docid。
4、索引结构构建步骤,对预处理后的数据构建倒排索引i和长度与docid的映射表lim。
5、列表交集查询步骤,对给定的查询q,根据创建的lim和i在数据集d中查询所有包含q的文档。
6、所述文档重排序步骤,包括:
7、文档长度升序排序:将数据集d中所有文档按文档长度进行升序排序。
8、文档docid重分配:对排序后的各文档docid从0到|d|-1依次编号,将编号后的最后一个文档的长度记为doclenmax。
9、为了便于后继列表交集查询方法的描述与实现,本发明将文档建模为集合并去除文档中的重复元素。
10、所述索引结构构建步骤,包括:
11、构建倒排索引i:扫描d中每一个文档d,构建倒排索引i,对d中每一个元素e,将d.docid插入到e对应的列表中,记e对应的倒排列表为i[e],|i[e]|表示i[e]中docid的数量。
12、构建映射表lim:构建一个长度为doclenmax的长度映射表lim,其第i个位置存储长度大于等于i的起始docid(sid)。
13、所述列表交集查询步骤,包括:
14、倒排列表长度升序排序:给定一个查询q,对i中的|q|个倒排列表按列表长度升序进行排序,相应地,q中元素也按照其对应的列表长度升序有序。
15、基于文档长度重排序的长度过滤(lrf),具体包括:
16、根据lim[|q|]获取|q|对应的sid。
17、记q中元素e对应最短列表i[e],在i[e]中查找第一个docid大于等于sid的位置p。
18、获取i[e]中位置大于等于p的部分i'[e],即i'[e]=i[e][p,...,|i[e]|-1]。
19、列表交集:为避免对所有列表进行交集的不足,lrf-li仅对有限的前m个列表进行交集操作,获得交集操作的候选集c,当|q|≤m时,c中的结果即为最终列表交集的结果,无需后续的验证。
20、验证:当|q|>m时,记q'为q中的后|q|-m个元素,对每个docid∈c,直接验证docid对应的文档d是否满足
21、若是,则d即为满足列表交集查询的一个结果。
22、验证时,先在d中二分查找q'的第一个元素e以获取其在d中的位置,若e存在d中,继续验证q'的下一个元素是否在d中。验证过程中,若q'中的任一元素e在d中不存在,则d不可能是q'的查询结果,验证即提前终止。
23、本发明的有益效果是:本发明提出基于文档长度重排序的长度过滤技术lrf和对应的lrf-li方法,通过基于长度的文档重排序过滤掉部分不可能满足交集结果的文档,从而显著降低候选集的数量;此外,为避免较多的列表交集操作,设计交集+验证的策略,仅对前m个列表进行交集,对交集后得到的候选集直接进行验证,从而可有效提高列表交集效率。
1.一种基于文档重排序的短文档列表交集查询方法,其特征在于,包括:
2.根据权利要求1所述的基于文档重排序的短文档列表交集查询方法,其特征在于,所述文档重排序步骤,包括:
3.根据权利要求1所述的基于文档重排序的短文档列表交集查询方法,其特征在于,所述索引结构构建步骤,包括:
4.根据权利要求1所述的基于文档重排序的短文档列表交集查询方法,其特征在于,所述列表交集查询步骤,包括: