CN103235794A - 一种基于文档序号处理的倒排索引表示方法及系统 - Google Patents
一种基于文档序号处理的倒排索引表示方法及系统 Download PDFInfo
- Publication number
- CN103235794A CN103235794A CN2013101130718A CN201310113071A CN103235794A CN 103235794 A CN103235794 A CN 103235794A CN 2013101130718 A CN2013101130718 A CN 2013101130718A CN 201310113071 A CN201310113071 A CN 201310113071A CN 103235794 A CN103235794 A CN 103235794A
- Authority
- CN
- China
- Prior art keywords
- document
- sequence
- document sequence
- sequence number
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明提供了一种基于文档序号处理的倒排索引表示方法及系统,其中方法包括:步骤1.将倒排记录表按文档序号升序或降序排列,获得排序后的倒排记录表,从排序后的倒排记录表提取多个文档序列;步骤2.计算所述多个文档序列的序列长度,根据所述序列长度对其进行相应操作:当序列的长度n小于3时,直接存储该序列,当序列的长度n大于等于3时,提取该序列起始和终止的两个边界文档序号,并在所述两个边界文档序号中间插入数字0后进行储存;步骤3.进行差值处理:对储存的所有序列的相邻文档序号进行差值计算并将相邻文档序号进行比较,获得的差值代替大的边界文档序号,获得新的倒排表。本发明能够有效地提高倒排索引的压缩率。
Description
技术领域
本发明涉及搜索引擎的倒排索引压缩技术领域,尤其涉及一种基于文档序号处理的倒排索引表示方法及系统。
背景技术
倒排索引是一种广泛应用于各类全文检索系统中的索引技术。常用的全文检索系统包括Web搜索引擎、图书馆检索系统和专利检索系统等。检索系统处理查询的过程大致可以分为4个步骤:索引构建、查询处理、索引扫描和文档评分。一般而言,用户输入查询后,系统扫描预先建立的倒排索引得到候选文档集,通过预定义的排序模型,结合启发式规则对文档进行综合评分,最后返回得分最高的前K篇文档。
建立倒排索引时,首先需要扫描文档集合,将每篇文档转换成一个个词条的列表,并通过语言学处理,产生归一化的词条作为词项,对所有文档按照其中出现的词项建立索引。倒排索引一般由一个词典和一个全体倒排记录表组成,如图3所示:
词典中保存了对文档集合进行处理后得到的词项、词项的文档频率(出现该词项的文档数目)以及一个指向该词项对应倒排记录表的指针。倒排记录表是由多个倒排记录构成的列表,其中的每个倒排记录对应出现该词项的一篇文档,倒排记录中记录的信息包括:文档序号,词项频率(词项在该文档中出现的次数),位置信息(词项出现在文档的位置)和其他附属信息。
在小数据集合上,倒排索引能够有效地存储和处理,但是随着文档集合规模的增长,倒排表的长度随之变长,一方面导致倒排索引占用的存储空间急速膨胀,另一方面,扫描倒排表的所需的时间更加漫长,降低了查询处理的效率。
为了克服文档规模带来的问题,现有技术提出了对倒排索引进行压缩的方法。通过对倒排索引进行压缩,不仅可以有效减少索引占用的存储空间,而且可以提高查询处理的效率。
倒排索引的一般形式可以表示为:其中词项t通过对文档集合进行处理得到,并存放在词典中,其倒排表记录该词项的文档频率ft和一个长度为ft的文档序号列表(为了简单起见,我们忽略了倒排记录中的词项频率和位置等信息),为原始的文档序号(docID)。
为了对倒排索引中的文档序号进行压缩,现有技术提出了采用d-gap形式表示文档序号,具体做法是将倒排表中的文档序号按照升序排列,对每个文档序号,用该文档序号和前面相邻的文档序号的差值表示(第一个文档序号除外),从而得到d-gap形式的倒排表:其中dk-1<dk。然后我们可以采用变长编码,编码算法对该倒排表进行编码,达到压缩的效果。D-GAP形式的倒排索引,其压缩效果之所以要优于一般形式的倒排索引,是因为文档序号之间的差值(d-gap)要远小于原始的文档序号,而更小的数值意味着可以采用更短的编码表示,所以d-gap形式倒排表的压缩率要高于一般形式的倒排表。
D-GAP形式的倒排索引广泛应用于各类全文检索系统中,但是仍然存在一定的不足。举例来说,假设一个倒排表包含10个文档序号,其一般形式为:{1,4,6,9,10,11,12,13,14,17},要对其进行压缩,我们首先计算差值,将其转换为d-gap形式:{1,3,2,3,1,1,1,1,1,3},然后对这10个差值进行编码。但是通过观察我们发现,在这10个差值中存在一个由数字1组成的连续序列,这连续的序列表明在一般形式的倒排表中,其对应的原始文档序号是连续的,以往的工作没有考虑连续文档序号的这种特征,仅仅是简单地依次对每一个文档序号进行编码。
发明内容
为解决上述发明目的,本发明提出了一种基于文档序号处理的倒排索引表示方法及系统,能够有效地减少待编码的文档序号数目,通过提高文档序号的存储和压缩效率有效地提高倒排索引的压缩率。
为实现上述发明目的,本发明提供了一种基于文档序号处理的倒排索引表示方法,该方法包括:
步骤1,将倒排记录表按文档序号升序或降序排列,获得排序后的倒排记录表,从排序后的倒排记录表提取多个文档序列;
步骤2,计算所述多个文档序列的序列长度,根据所述序列长度对其进行相应操作:当序列的长度n小于3时,直接存储该序列,当序列的长度n大于等于3时,提取该序列起始和终止的两个边界文档序号,并在所述两个边界文档序号中间插入数字0后进行储存;
步骤3,进行差值处理:对储存的所有序列的相邻文档序号进行差值计算并将相邻文档序号进行比较,获得的差值代替大的边界文档序号,获得新的倒排表;
其中所述文档序列是倒排表中连续的文档序号,所述序列长度为所述文档序列中的文档序号个数。进一步的,所述倒排记录表采用纵向切分或者横向切分两种方式存储,且纵向切分的存储将N个倒排记录作为一块存储,N取值为128,横向切分的存储则将文档序号、词项频率和位置信息分开存储。为实现上述发明目的,本发明还提供一种基于文档序号处理的倒排索引表示系统,该系统包括:
排序模块,用于将倒排记录表按文档序号升序或降序排列,获得排序后的倒排记录表,从排序后的倒排记录表提取多个文档序列;
计算处理模块,用于计算所述多个文档序列的序列长度,根据所述序列长度对其进行相应操作:当序列的长度n小于3时,直接存储该序列,当序列的长度n大于等于3时,提取该序列起始和终止的两个边界文档序号,并在所述两个边界文档序号中间插入数字0后进行储存;
差值处理模块,用于进行差值处理:对储存的所有序列的相邻文档序号进行差值计算并将相邻文档序号进行比较,获得的差值代替大的边界文档序号,获得新的倒排表;
其中所述文档序列是倒排表中连续的文档序号,所述序列长度为所述文档序列中的文档序号个数。
进一步的,所述倒排记录表采用纵向切分或者横向切分两种方式存储,且纵向切分的存储将N个倒排记录作为一块存储,N取值为128,横向切分的存储则将文档序号、词项频率和位置信息分开存储。
本发明的效果在于,有效地减少待编码的文档序号数目,提高了文档序号的存储和压缩效率,提高了倒排索引的压缩率,本发明能广泛应用于搜索引擎性能优化和倒排索引压缩领域。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1是本发明的基于文档序号处理的倒排索引表示方法流程图;
图2是本发明的基于文档序号处理的倒排索引表示系统示意图;
图3是现有技术中的倒排索引的基本结构;
图4是本发明中的纵向切分存储的倒排记录表;
图5是本发明中的横向切分存储的倒排记录表。
具体实施方式
图1是本发明的基于文档序号处理的倒排索引表示方法流程图。如图1所示,该方法包括:
步骤1,将倒排记录表按文档序号升序或降序排列,获得排序后的倒排记录表,从排序后的倒排记录表提取多个文档序列;
步骤2,计算所述多个文档序列的序列长度,根据所述序列长度对其进行相应操作:当序列的长度n小于3时,直接存储该序列,当序列的长度n大于等于3时,提取该序列起始和终止的两个边界文档序号,并在所述两个边界文档序号中间插入数字0后进行储存;
步骤3,进行差值处理:对储存的所有序列的相邻文档序号进行差值计算并将相邻文档序号进行比较,获得的差值代替大的边界文档序号,获得新的倒排表;
其中所述文档序列是倒排表中连续的文档序号,所述序列长度为所述文档序列中的文档序号个数。
进一步的,所述倒排记录表采用纵向切分或者横向切分两种方式存储,且纵向切分的存储将N个倒排记录作为一块存储,N取值为128,横向切分的存储则将文档序号、词项频率和位置信息分开存储。
图2是本发明的基于文档序号处理的倒排索引表示系统示意图。如图2所示,该系统包括:
排序模块100,用于将倒排记录表按文档序号升序或降序排列,获得排序后的倒排记录表,从排序后的倒排记录表提取多个文档序列;
计算处理模块200,用于计算所述多个文档序列的序列长度,根据所述序列长度对其进行相应操作:当序列的长度n小于3时,直接存储该序列,当序列的长度n大于等于3时,提取该序列起始和终止的两个边界文档序号,并在所述两个边界文档序号中间插入数字0后进行储存;
差值处理模块300,用于进行差值处理:对储存的所有序列的相邻文档序号进行差值计算并将相邻文档序号进行比较,获得的差值代替大的边界文档序号,获得新的倒排表;
其中所述文档序列是倒排表中连续的文档序号,所述序列长度为所述文档序列中的文档序号个数。
进一步的,所述倒排记录表采用纵向切分或者横向切分两种方式存储,且纵向切分的存储将N个倒排记录作为一块存储,N取值为128,横向切分的存储则将文档序号、词项频率和位置信息分开存储。
相对于现有技术中的d‐gap形式的倒排索引,本发明的基于文档序号处理的倒排索引可以称为d‐range的文档序号表示方法。
将倒排记录表按文档序号升序排列,对其中连续的文档序号序列,当序列的长度n小于3时(n=1或2),原样存储该序列,如长度为2的序列:5、6,采用d-range形式表示时,仍保存该序列的原始值:5、6。
通过词条化、语言学处理、倒排等操作,我们得到如图3所示的倒排索引。在实际情况中,为了高效的存储和读取,倒排记录表往往使用横向切分或者纵向切分这两种方式存储。
纵向切分存储又可以称为按块存储,将N个倒排记录作为一块存储,N一般取值为128,如图4所示。
另外一种方式称为横向切分,即把文档序号、词项频率和位置信息分开存储,这样存储的好处是可以独立并行地对这些数值进行处理,提高了处理的效率,如图5所示。
本专利的发明内容可以同时适用于上述两种存储方式。以图5为例,倒排记录表中的文档序号单独存放在一个数据块中,其中存放的内容是出现词项t的文档序号。给定词项t,可以通过查找字典得到该词项对应的文档序号信息。本专利主要是关于文档序号的表示和压缩方法,所以下文的实施步骤主要是针对文档序号,暂不考虑词项频率和位置信息。
我们把倒排表中连续的文档序号称为一个文档序列,比如{3,4,5,6}可以称为一个序列,{3,5,6}则包含两个序列,第一个序列是{3},第二个序列是{5,6}。序列中包含的文档序号个数定义为序列的长度。倒排表中的文档信息可以看做是由大量这样的文档序列组成的。在本专利中,我们提出d-range的表示方法,用于对倒排表中的文档序列进行优化,从而进一步提高倒排索引压缩率。下面介绍具体的实施步骤。
假设给定一个包含n个连续文档序号的文档序列L:
L={d1,d2,…,dn},
如果文档序列的长度n≥3,其d-range形式表示为:Ld-range={d1,0,dn},即Ld-range={左边界,0,右边界};如果n=1或者n=2,则保存原始文档序列,其相应形式为:Ld-range={d1}(n=1)或者{d1,dn}(n=2)。对倒排表中所有文档序号进行上述处理后,再计算相邻文档序号之间的差值(左边界和右边界之间的0除外),最后得到d-range形式的倒排表。
比如针对文档序号{3,4,5,6,8,9,10,13},按照上述的规则,里面共有3个文档序列:{3,4,5,6}、{8,9,10}和{13},对每个序列都采用d-range处理后,我们得到其d-range形式的原始表示:{3,0,6,8,0,10,13},然后计算相邻文档序号之间的差值,最后得到:{3,0,3,2,0,2,3}。
选择把n≥3的连续文档序列表示成{左边界,0,右边界}的形式,是因为通过d-range形式来表示这些序列,我们至少需要3个整数,而且我们只需3个整数,就能表示原来n个文档序号的情况。在序列长度n=3时,采用d-range形式也需要3个数值;当n>3时,d-range形式需要存储的整数便可以减少(n-3)个,n的值越大,d-range减少的整数数目也越多。而当序列的长度n=1或者n=2时,d-range形式反而需要更多的整数,所以在这些情况下,我们存储原始序列。
然后,采用差值方法进一步提高d-range的压缩效率,即用相邻序号之间的差值代替原始值,如序列:5、6,其差值形式为5、1(6–5=1);5、0、9,其差值形式为5、0、3(8–5=3)。
我们在三个数据集上对比了d-range形式和d-gap形式的实验结果,包括存储时减少的整数个数以及压缩后每个文档序号所需要的比特数。表1中介绍了三个数据集的详细信息,在表中我们统计了各个数据集的大小,对数据集处理后得到的词项数,数据集包含的文档数目以及倒排记录的数目。
表1
在表2中,我们对比了倒排表采用d-range形式表示后,待编码的整数个数相对于d-gap形式的变化。从表2的结果可以看出,在三个数据集上,d-range形式的倒排表将待编码的整数个数减少了10%以上,而整数个数的减少意味着倒排表可以占用更少的存储空间。
表2
表3在实验数据集上对比了d-range和d-gap形式的倒排索引,在VB、S9和PFD编码算法时的压缩效果。从实验结果可以看出,d-range在上述编码时,压缩率都要优于d-gap。在FBIS、LATimes和WT2g数据集上,d-range比d-gap的压缩率平均提高了8.5%,7.7%和9.2%。
表3
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (4)
1.一种基于文档序号处理的倒排索引表示方法,其特征在于,包括:
步骤1,将倒排记录表按文档序号升序或降序排列,获得排序后的倒排记录表,从排序后的倒排记录表提取多个文档序列;
步骤2,计算所述多个文档序列的序列长度,根据所述序列长度对其进行相应操作:当序列的长度n小于3时,直接存储该序列,当序列的长度n大于等于3时,提取该序列起始和终止的两个边界文档序号,并在所述两个边界文档序号中间插入数字0后进行储存;
步骤3,进行差值处理:对储存的所有序列的相邻文档序号进行差值计算并将相邻文档序号进行比较,获得的差值代替大的边界文档序号,获得新的倒排表;
其中所述文档序列是倒排表中连续的文档序号,所述序列长度为所述文档序列中的文档序号个数。
2.如权利要求1所述的倒排索引表示方法,其特征在于,所述倒排记录表采用纵向切分或者横向切分两种方式存储,且纵向切分的存储将N个倒排记录作为一块存储,N取值为128,横向切分的存储则将文档序号、词项频率和位置信息分开存储。
3.一种基于文档序号处理的倒排索引表示系统,其特征在于,包括:
排序模块,用于将倒排记录表按文档序号升序或降序排列,获得排序后的倒排记录表,从排序后的倒排记录表提取多个文档序列;
计算处理模块,用于计算所述多个文档序列的序列长度,根据所述序列长度对其进行相应操作:当序列的长度n小于3时,直接存储该序列,当序列的长度n大于等于3时,提取该序列起始和终止的两个边界文档序号,并在所述两个边界文档序号中间插入数字0后进行储存;
差值处理模块,用于进行差值处理:对储存的所有序列的相邻文档序号进行差值计算并将相邻文档序号进行比较,获得的差值代替大的边界文档序号,获得新的倒排表;
其中所述文档序列是倒排表中连续的文档序号,所述序列长度为所述文档序列中的文档序号个数。
4.如权利要求3所述的倒排索引表示系统,其特征在于,所述倒排记录表采用纵向切分或者横向切分两种方式存储,且纵向切分的存储将N个倒排记录作为一块存储,N取值为128,横向切分的存储则将文档序号、词项频率和位置信息分开存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101130718A CN103235794A (zh) | 2013-04-02 | 2013-04-02 | 一种基于文档序号处理的倒排索引表示方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101130718A CN103235794A (zh) | 2013-04-02 | 2013-04-02 | 一种基于文档序号处理的倒排索引表示方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103235794A true CN103235794A (zh) | 2013-08-07 |
Family
ID=48883836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101130718A Pending CN103235794A (zh) | 2013-04-02 | 2013-04-02 | 一种基于文档序号处理的倒排索引表示方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103235794A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376040A (zh) * | 2014-10-11 | 2015-02-25 | 北京中搜网络技术股份有限公司 | 一种用于文档索引的文档id压缩方法 |
CN105205153A (zh) * | 2015-09-24 | 2015-12-30 | 小米科技有限责任公司 | 文件存储方法和装置 |
CN106202154A (zh) * | 2016-06-21 | 2016-12-07 | 南开大学 | 一种基于重复数据删除架构的倒排索引表示方法及系统 |
CN110825936A (zh) * | 2018-07-23 | 2020-02-21 | 北京小度互娱科技有限公司 | 生成倒排索引和用倒排索引检索的方法、系统及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089256A1 (en) * | 2007-10-01 | 2009-04-02 | Frederik Transier | Compressed storage of documents using inverted indexes |
CN102929988A (zh) * | 2012-10-19 | 2013-02-13 | 中国科学院计算技术研究所 | 用于对倒排索引进行压缩的文档序号重排方法及其系统 |
-
2013
- 2013-04-02 CN CN2013101130718A patent/CN103235794A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090089256A1 (en) * | 2007-10-01 | 2009-04-02 | Frederik Transier | Compressed storage of documents using inverted indexes |
CN102929988A (zh) * | 2012-10-19 | 2013-02-13 | 中国科学院计算技术研究所 | 用于对倒排索引进行压缩的文档序号重排方法及其系统 |
Non-Patent Citations (2)
Title |
---|
刘兴宇: "基于倒排索引的全文检索技术研究", 《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》 * |
陈伟等: "搜索引擎中混合型分布式索引组织策略", 《浙江大学学报(工学版)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376040A (zh) * | 2014-10-11 | 2015-02-25 | 北京中搜网络技术股份有限公司 | 一种用于文档索引的文档id压缩方法 |
CN105205153A (zh) * | 2015-09-24 | 2015-12-30 | 小米科技有限责任公司 | 文件存储方法和装置 |
CN105205153B (zh) * | 2015-09-24 | 2018-10-19 | 小米科技有限责任公司 | 文件存储方法和装置 |
CN106202154A (zh) * | 2016-06-21 | 2016-12-07 | 南开大学 | 一种基于重复数据删除架构的倒排索引表示方法及系统 |
CN106202154B (zh) * | 2016-06-21 | 2019-04-02 | 南开大学 | 一种基于重复数据删除架构的倒排索引表示方法及系统 |
CN110825936A (zh) * | 2018-07-23 | 2020-02-21 | 北京小度互娱科技有限公司 | 生成倒排索引和用倒排索引检索的方法、系统及存储介质 |
CN110825936B (zh) * | 2018-07-23 | 2024-04-30 | 北京小度互娱科技有限公司 | 生成倒排索引和用倒排索引检索的方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102799647B (zh) | 网页去重方法和设备 | |
US8321485B2 (en) | Device and method for constructing inverted indexes | |
EP2344959B1 (en) | Index compression in databases | |
US8171029B2 (en) | Automatic generation of ontologies using word affinities | |
US20100125594A1 (en) | Method and Apparatus for Improving Performance of Approximate String Queries Using Variable Length High-Quality Grams | |
US7880648B2 (en) | Information processing apparatus, information processing method, and computer product | |
CN103049568A (zh) | 对海量文档库的文档分类的方法 | |
CN102750379B (zh) | 一种基于过滤型的字符串快速匹配方法 | |
EP2442273A1 (en) | Object identification image database creating method, creating apparatus and creating process program | |
CN107844493B (zh) | 一种文件关联方法及系统 | |
Culpepper et al. | Efficient in-memory top-k document retrieval | |
CN103235794A (zh) | 一种基于文档序号处理的倒排索引表示方法及系统 | |
CN101464910A (zh) | 基于数据相似的平衡聚类压缩方法 | |
CN101887415B (zh) | 一种文本文档主题词义的自动提取方法 | |
CN103345496A (zh) | 多媒体信息检索方法和系统 | |
CN101751475B (zh) | 号段记录压缩方法及其装置 | |
CN106649308B (zh) | 一种分词词库更新方法及系统 | |
US20080033909A1 (en) | Indexing | |
CN111859070A (zh) | 一种海量互联网新闻清洗系统 | |
CN105488471B (zh) | 一种字形识别方法及装置 | |
CN116722876A (zh) | 一种用于版式轻阅读的用户数据智能存储方法 | |
CN102201007A (zh) | 一种大规模数据搜索系统 | |
CN112835923A (zh) | 一种相关检索方法、装置和设备 | |
CN101196921A (zh) | 用于近似查询的长序列数据降维方法 | |
Hon et al. | Compressed property suffix trees |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130807 |