CN103064847A - 索引装置、索引方法、检索装置、检索方法和检索系统 - Google Patents
索引装置、索引方法、检索装置、检索方法和检索系统 Download PDFInfo
- Publication number
- CN103064847A CN103064847A CN2011103195686A CN201110319568A CN103064847A CN 103064847 A CN103064847 A CN 103064847A CN 2011103195686 A CN2011103195686 A CN 2011103195686A CN 201110319568 A CN201110319568 A CN 201110319568A CN 103064847 A CN103064847 A CN 103064847A
- Authority
- CN
- China
- Prior art keywords
- numeric string
- cutting
- index
- string
- document
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种索引装置,包括:数字串切分模块,对文档中的数字串进行切分;索引建立模块,根据切分后得到的新数字串和所述文档建立索引。在该技术方案中,提出对文档中的数字串进行切分,将切分后的新数字串作为关键词建立索引,可以合理地控制索引结构中的关键词指向的文件链表的长度,以及关键词列表的长度,即能够控制数字串建立的索引大小在计算机内存可接受的范围内,可以提高数字串检索速度。本发明还提出索引方法、检索装置、检索方法和检索系统。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及索引装置、索引方法、检索装置、检索方法和检索系统。
背景技术
搜索引擎已经成为互联网的主要入口,人们通过搜索引擎查询和定位互联网信息资源。主流的搜索引擎采用倒排索引技术,通过建立检索关键词到文档之间的庞大倒排映射表,实现用户检索请求的快速检索。系统工作逻辑主要包含四个主要步骤:信息采集、信息预处理,信息索引、信息检索。其中,信息预处理过程的重要工作是对文档进行基于语义或语法层面的分析,抽取出文档中可供用户查询的关键词,并计算和标记关键词在文档中的位置、频率、权重等相关信息,作为索引阶段的输入数据。对于英文类文档而言,关键词抽取模块相对简单,可以直接利用空格作为关键词分割标记实现关键词抽取。区别于英文文档,中文文档不包含明确的词分割标记符,通常需要采用基于统计或规则的专门分词模块进行文档分词处理。文档预处理阶段获得的关键词包括:中文词、英文单词、数字串、标点符号等。电话号码、身份证号等信息以数字串存在。
搜索引擎帮助用户在庞大的信息中快速找到自己想要的信息,之所以这样快,是因为搜索引擎维护着一个大的索引。通常的索引是关键词(通过文本分词得到)到包含关键词的文档倒排链表结构。无论用户检索的是单个关键词还是由关键词组合的长串,都会被内部的分词模块切分成倒排索引中已有的关键词或者多个关键词的组合,当是多个关键词的组合时,会在索引中找到这些关键词倒排链表,然后进行归并操作。
在倒排索引结构中,不管是中文或者是英文,一般意义上的关键词数量占有的空间相对于计算机的存储器容量来说都是可以接受的。在计算机的存储容量上,磁盘的空间大小比内存的空间大,但是在速度上,磁盘的读取速度远小于内存的读取速度,为了快速的检索,普遍采取的做法是将索引数据全部放到内存中,或者是将部分索引数据放到内存中。
现有技术方案中,一般索引系统的主索引和备用索引都是在内存中,或者采用多级索引结构,是在内存索引中指定磁盘索引的位置。无论是前者还是后者,索引中的关键词列表都是存储在内存中的,因为搜索一个关键词的第一步是确定哪些文档包含当前关键词,在倒排索引中,关键词列表的变化相对于文档来说几乎可以忽略不计,变化频繁的是关键词列表中每个关键词指向的文档信息。新添加一篇文档,经过搜索引擎的分词模块处理之后,在关键词列表中都能找到文档中包含的关键词,然后依次在关键词指向的文档链表中添加新来的文档信息。
对于数字串信息,搜索引擎需要提供了很好的查询支持,但因为数字串的特殊性,给搜索引擎架构设计增加了技术难度。因为内存空间的局限性,也就限制了内存索引的大小。以目前的计算机硬件水平来看,一般类型的关键词列表都可以放到内存当中,但对于数字串来说,跟一般的串不一样了,0到9的阿拉伯数字任何位、任何组合都可以当作是有效的关键词,都可以但鼓掌哦关键词建索引,所以这类的关键词个数是无穷的,搜索引擎索引的性能会受到很大的影响。以n位数字来说,n位数字的组合是10的n次方,当n是10的时候,有100亿个数字串关键词组合,目前的内存空间远远不够用。
对于一般的数字串可以看成是非常见的,甚至常常是一个数字串只出现在特定的唯一的一片文档当中,如果按照传统的索引方法,在倒排表中,当前数字串只指向一篇文档,空间利用率上将大大的下降。
如果将单个的阿拉伯数字0-9作为关键词列表,关键词列表减小到只有10个关键词,每个关键词指向的文档链表将非常的大,大部分的用户的检索都是检索特定的数字串组合,因此在检索中的归并过程计算量将非常大,大大降低了检索的效率。
因此,需要一种新的用数字串建立索引和进行检索的方法,使用户可以在现有的计算机硬件条件下,利用文档中的数字串建立索引和进行检索,同时减小索引数据所占内存空间,并提高检索效率。
发明内容
本发明要解决的技术问题在于,提供一种新的用数字串建立索引和进行检索的方法,使用户可以在现有的计算机硬件条件下,利用文档中的数字串建立索引和进行检索,同时减小索引数据所占内存空间,并提高检索效率。
有鉴于此,本发明提出了一种索引装置,包括:数字串切分模块,对文档中的数字串进行切分;索引建立模块,根据切分后得到的新数字串和所述文档建立索引。在该技术方案中,提出对文档中的数字串进行切分,将切分后的新数字串作为关键词建立索引,可以合理地控制索引结构中的关键词指向的文件链表的长度,以及关键词列表的长度,即能够控制数字串建立的索引大小在计算机内存可接受的范围内,可以提高数字串检索速度。
在上述技术方案中,优选地,还包括:还包括:固定长度设置模块,设置固定长度;所述数字串切分模块按所述固定长度对所述字符串进行切分。在该技术方案中,具体地,可以首先设置一个固定长度,然后以此固定长度对数字串进行切分,如果原数字串长度小于或等于固定长度,则无需切分而将该数字串直接作为关键词建立索引;如果原数字串长度大于固定长度,则对该数字串以一定方向如从左向右等进行切分,并将切分后得到的新数字串作为关键词建立索引;由于原数字串的长度可能不是固定长度的整数倍,因而切分后得到的最后一段数字串长度可能小于固定长度,但不影响建立相关索引。固定长度影响切分出来的数字串,该数据串作为关键词时,太短则导致关键词指向的文件链表太长,每一次查询的计算量大,太长会导致关键词列表太长,都会对计算机硬件资源造成一定压力,因此需要设置较为合理的固定长度。
本发明还提出了一种索引方法,包括:步骤202,数字串切分模块对文档中的数字串进行切分;步骤204,索引建立模块根据切分后得到的新数字串和所述文档建立索引。在该技术方案中,提出对文档中的数字串进行切分,将切分后的新数字串作为关键词建立索引,可以合理地控制索引结构中的关键词指向的文件链表的长度,以及关键词列表的长度,即能够控制数字串建立的索引大小在计算机内存可接受的范围内,可以提高数字串检索速度。
在上述技术方案中,优选地,在所述步骤202之前,还包括:固定长度设置模块设置固定长度;所述步骤202具体包括:所述数字串切分模块按照所述固定长度对所述数字串进行切分。在该技术方案中,具体地,可以首先设置一个固定长度,然后以此固定长度对数字串进行切分,如果原数字串长度小于或等于固定长度,则无需切分而将该数字串直接作为关键词建立索引;如果原数字串长度大于固定长度,则对该数字串以一定方向如从左向右等进行切分,并将切分后得到的新数字串作为关键词建立索引;由于原数字串的长度可能不是固定长度的整数倍,因而切分后得到的最后一段数字串长度可能小于固定长度,但不影响建立相关索引。固定长度影响切分出来的数字串,该数据串作为关键词时,太短则导致关键词指向的文件链表太长,每一次查询的计算量大,太长会导致关键词列表太长,都会对计算机硬件资源造成一定压力,因此需要设置较为合理的固定长度。
本发明还提出了一种检索装置,包括:数字串切分模块,对检索串中的数字串进行切分;检索模块,根据切分后得到的新数字串,在预建立的索引中进行检索。在该技术方案中,提出对检索串的数字串进行切分,将切分后的新数字串作为关键词进行检索;而对于原检索串中非数字串的部分,则依然按照传统方式进行检索,最后将数字串关键词和非数字串关键词的检索结果进行相关性计算后,呈现给用户。
在上述技术方案中,优选地,还包括:如上述的索引装置,以预建立所述索引。通过该技术方案,结合上述方案实现的索引,可以进一步优化检索。
在上述技术方案中,优选地,所述数字串切分模块还在所述新数字串的被切分处添加标记;所述检索模块根据所述标记,获取所述新字符串,并统计所述新字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。通过该技术方案,可以整合切分出的数字串对应的所有结果,有利于保证检索的准确性。
本发明还提出了一种检索方法,包括:步骤402,数字串切分模块对检索串中的数字串进行切分;步骤404,检索模块根据切分后得到的新数字串,在预建立的索引中进行检索。在该技术方案中,提出对检索串的数字串进行切分,将切分后的新数字串作为关键词进行检索;而对于原检索串中非数字串的部分,则依然按照传统方式进行检索,最后将数字串关键词和非数字串关键词的检索结果进行相关性计算后,呈现给用户。
在上述技术方案中,优选地,在所述步骤402之前,还包括:通过如上述的索引方法,以预建立所述索引。通过该技术方案,结合上述方案实现的索引,可以进一步优化检索。
在上述技术方案中,优选地,在所述步骤402中,还包括:所述数字串切分模块在所述新数字串的被切分处添加标记;所述步骤404具体包括:所述检索模块根据所述标记,获取所述新字符串,并统计所述新字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。通过该技术方案,可以整合切分出的数字串对应的所有结果,有利于保证检索的准确性。
本发明还提出了一种检索系统,包括:如上所述的索引装置;如上所述的检索装置,所述检索装置使用其生成的数字串,所述检索装置使用其生成的新数字串,在所述索引装置建立的索引中进行检索。在该技术方案中,索引装置通过将文档中的数字串按固定长度切分,并将切分后得到的数字串作为关键词建立索引;而检索装置通过将检索串中的数字串按固定长度切分,并将切分后得到的数字串作为关键词进行检索,通过对数字串的这种切分处理,从而既控制了索引占用计算机内存的大小,也能够提高检索结果相关性计算的速度,保证检索效率。
附图说明
图1是根据本发明的一个实施例的索引装置的框图;
图2是根据本发明的一个实施例的索引方法的流程图;
图3是根据本发明的一个实施例的检索装置的框图;
图4是根据本发明的一个实施例的检索方法的流程图;
图5是根据本发明的一个实施例的检索系统的框图;
图6是搜索引擎使用的数据结构的示意图;
图7是根据本发明的一个实施例的索引方法中的数字串切分示意图;
图8是根据本发明的一个实施例的索引方法生成的索引的示意图;
图9是根据本发明的一个实施例的索引方法的流程示意图;
图10是根据本发明的一个实施例的索引方法的流程示意图;
图11是根据本发明的一个实施例的检索方法的流程示意图;
图12是根据本发明的一个实施例的检索方法中的数字串切分流程图;
图13是根据本发明的一个实施例的检索方法的流程示意图;
图14是根据本发明的一个实施例的检索方法的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1是根据本发明的一个实施例的索引装置的框图。
如图1所示,本发明提出了一种索引装置100,包括:数字串切分模块102,对文档中的数字串进行切分;索引建立模块104,根据切分后得到的新数字串和所述文档建立索引。在该技术方案中,提出对文档中的数字串进行切分,将切分后的新数字串作为关键词建立索引,可以合理地控制索引结构中的关键词指向的文件链表的长度,以及关键词列表的长度,即能够控制数字串建立的索引大小在计算机内存可接受的范围内,可以提高数字串检索速度。
在上述技术方案中,还包括:还包括:固定长度设置模块106,设置固定长度;所述数字串切分模块102按所述固定长度对所述字符串进行切分。在该技术方案中,具体地,可以首先设置一个固定长度,然后以此固定长度对数字串进行切分,如果原数字串长度小于或等于固定长度,则无需切分而将该数字串直接作为关键词建立索引;如果原数字串长度大于固定长度,则对该数字串以一定方向如从左向右等进行切分,并将切分后得到的新数字串作为关键词建立索引;由于原数字串的长度可能不是固定长度的整数倍,因而切分后得到的最后一段数字串长度可能小于固定长度,但不影响建立相关索引。固定长度影响切分出来的数字串,该数据串作为关键词时,太短则导致关键词指向的文件链表太长,每一次查询的计算量大,太长会导致关键词列表太长,都会对计算机硬件资源造成一定压力,因此需要设置较为合理的固定长度。
图2是根据本发明的一个实施例的索引方法的流程图。
如图2所示,本发明还提出了一种索引方法,包括:步骤202,数字串切分模块对文档中的数字串进行切分;步骤204,索引建立模块根据切分后得到的新数字串和所述文档建立索引。在该技术方案中,提出对文档中的数字串进行切分,将切分后的新数字串作为关键词建立索引,可以合理地控制索引结构中的关键词指向的文件链表的长度,以及关键词列表的长度,即能够控制数字串建立的索引大小在计算机内存可接受的范围内,可以提高数字串检索速度。
在上述技术方案中,在所述步骤202之前,还包括:固定长度设置模块设置固定长度;所述步骤202具体包括:所述数字串切分模块按照所述固定长度对所述数字串进行切分。在该技术方案中,具体地,可以首先设置一个固定长度,然后以此固定长度对数字串进行切分,如果原数字串长度小于或等于固定长度,则无需切分而将该数字串直接作为关键词建立索引;如果原数字串长度大于固定长度,则对该数字串以一定方向如从左向右等进行切分,并将切分后得到的新数字串作为关键词建立索引;由于原数字串的长度可能不是固定长度的整数倍,因而切分后得到的最后一段数字串长度可能小于固定长度,但不影响建立相关索引。固定长度影响切分出来的数字串,该数据串作为关键词时,太短则导致关键词指向的文件链表太长,每一次查询的计算量大,太长会导致关键词列表太长,都会对计算机硬件资源造成一定压力,因此需要设置较为合理的固定长度。
图3是根据本发明的一个实施例的检索装置的框图。
如图3所示,本发明还提出了一种检索装置300,包括:数字串切分模块302,对检索串中的数字串进行切分;检索模块304,根据切分后得到的新数字串,在预建立的索引中进行检索。在该技术方案中,提出对检索串的数字串进行切分,将切分后的新数字串作为关键词进行检索;而对于原检索串中非数字串的部分,则依然按照传统方式进行检索,最后将数字串关键词和非数字串关键词的检索结果进行相关性计算后,呈现给用户。
在上述技术方案中,还包括:如上述的索引装置100,以预建立所述索引。通过该技术方案,结合上述方案实现的索引,可以进一步优化检索。
在上述技术方案中,所述数字串切分模块302还在所述新数字串的被切分处添加标记;所述检索模块304根据所述标记,获取所述新字符串,并统计所述新字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。通过该技术方案,可以整合切分出的数字串对应的所有结果,有利于保证检索的准确性。
图4是根据本发明的一个实施例的检索方法的流程图。
如图4所示,本发明还提出了一种检索方法,包括:步骤402,数字串切分模块对检索串中的数字串进行切分;步骤404,检索模块根据切分后得到的新数字串,在预建立的索引中进行检索。在该技术方案中,提出对检索串的数字串进行切分,将切分后的新数字串作为关键词进行检索;而对于原检索串中非数字串的部分,则依然按照传统方式进行检索,最后将数字串关键词和非数字串关键词的检索结果进行相关性计算后,呈现给用户。
在上述技术方案中,在所述步骤402之前,还包括:通过如上述的索引方法,以预建立所述索引。通过该技术方案,结合上述方案实现的索引,可以进一步优化检索。
在上述技术方案中,在所述步骤402中,还包括:所述数字串切分模块在所述新数字串的被切分处添加标记;所述步骤404具体包括:所述检索模块根据所述标记,获取所述新字符串,并统计所述新字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。通过该技术方案,可以整合切分出的数字串对应的所有结果,有利于保证检索的准确性。
图5是根据本发明的一个实施例的检索系统的框图。
如图5所示,本发明还提出了一种检索系统,包括:如上所述的索引装置;如上所述的检索装置,所述检索装置使用其生成的数字串,所述检索装置使用其生成的新数字串,在所述索引装置建立的索引中进行检索。在该技术方案中,索引装置通过将文档中的数字串按固定长度切分,并将切分后得到的数字串作为关键词建立索引;而检索装置通过将检索串中的数字串按固定长度切分,并将切分后得到的数字串作为关键词进行检索,通过对数字串的这种切分处理,从而既控制了索引占用计算机内存的大小,也能够提高检索结果相关性计算的速度,保证检索效率。
以下详细说明本发明的技术方案。
主流的搜索引擎主要依赖于词典文件、倒排列表文件、位置列表文件等三个数据结构实施检索操作逻辑,如图6所示。其中,词典文件记录词和词的倒排文档列表在倒排列表文件中的偏移信息。倒排列表文件记录了所有词的倒排文档列表数据。位置列表文件记录所有词的在文档中出现的位置信息。基于查询效率考虑,运行态的搜索引擎优先将词典文件导入内存,以便快速查询定位,倒排列表文件和位置文件的访问采用直接磁盘操作。
在信息索引阶段,数字串信息被采用与中文词、英文单词相同的处理方式建立索引。但数字串关键词与人们正常使用的语言词汇不同,不具有强烈的分布区间规律。海量的互联网文档中出现的数字串数量巨大。例如,目前使用的身份证号具有18位,每一个身份证号数字串都有可能出现在网络文档中。索引过程中,这些数字串关键词的加入致使词典文件空间极度膨胀,浪费了宝贵的服务器内存资源。一些应用场景下,搜索引擎服务器无法一次性载入词典文件到内存中,转而采用多级索引的方式保存词典文件,严重恶化了检索效率。同时,倒排列表文件和位置列表文件都引入了差值压缩算法对倒排记录中的文档编号、位置信息等数据进行压缩,由于绝大多数的数字串使用频率较低,甚至是仅出现在单篇文档中,使得压缩算法的实际效果不佳,索引压缩比大幅下降,磁盘空间浪费严重。
本发明的实施例,针对背景技术在数字串处理上的缺陷,采用对数字串按固定长度切割的方法进行索引。如图7所示,对数字串a1a2a3a4a5…an,n个数字字符组成的原始串,以固定长度k为切割长度,将原始串切分为m+1个数字串组合,在m+1个数字串组合中,其中前m个数字串为等长的数字串,数字串长度为k,第m+1个数字串长度小于等于k,因为不能保证原始串的长度恰好等于k的倍数,所以从原始串的最左边开始切割,剩余部分保留在最右边。如果原始串的长度小于固定长度k,就以原始串本身为关键词,不做切割。
在索引中,一个关键词占一个槽,当新添加一个关键词,槽就相应的增加一个,数字串关键词索引也同样需要占槽,采用固定长度k做固定切割之后,将一个长数字串分成固定在多个固定长度数字串,切分后的每一个数字串的范围在“0”-“9999…”k个9之间,数字串所占用的槽的个数的极限值就是:10的k次方+10的k-1次方+…+10的1次方个。也就是说k值越大,关键词槽数越大。如图8所示,k值越大索引倒排链表纵向高度越长,需要的占位槽越多,横向长度越短,因为切分少,文档关键词信息就少,相反,k值越小纵向高度越短,横向长度越长。但是k值引起倒排链表纵向高度与横向长度变化的幅度有很大的差别。K值每增大1,链表纵向高度的极限值增加原来的10倍多,横向长度随缩短为原来的((x/k+1)/(x/k))=k/(k+1)倍。所以k值特别大时,索引倒排链表的高度增大,计算机的内存满足不了,k值特别小时,索引倒排链表的横向长度将会增加,检索一次的计算量将会增加。因此k值的大小要根据机器硬件大小以及原始数据中数据串的大小来定。
采用固定长度的数字串做关键词索引,创建索引时,与传统创建索引不一样的地方是需要对文档中的数字信息做特殊处理,当数字串长度不满足固定长度时,不切分,数字串超出固定长度时已固定长度切分数字串。数字串建立索引过程如图9,过程如下:
步骤902,对新文档做分词处理,此时文档中的数字串与非数字串将被区分开来,连在一起的数字当成是一个数字串。
步骤904,统计分词后的文档信息,统计每个词的词频,位置等信息,为检索相关性计算提供相应的数据,这些信息与文档id都会记录在倒排索引中。
步骤906,判断是否有数字串,有数字串,进入步骤908,否则,进入步骤910。
步骤908,在已有的统计信息基础上做下面的操作:
(1)当数字串长度小于固定长度时,不做数字串切分,按原长度处理。
(2)当数字串长度大于固定长度是时,按照固定长度切分成多个数字串,切分好的数字串,统计切分后数字串信息。
步骤910,修改索引链表,如图10所示:
步骤1002,获取切分后的数字串;
步骤1004,查找索引,判断其中是否当前的数字串,如果倒排索引中已有新文档统计出的关键词,进入步骤1008,如果倒排索引中没有新文档统计出的关键词,进入步骤1006。
步骤1006,倒排索引中添加关键词,并在此关键词指向的文档信息链表中添加文档信息。
步骤1008,在已有的关键词指向的文档信息链表末尾添加文档信息。直至添加索引结束。
采用固定长度的数字串做关键词索引,搜索信息时与创建索引时有一些不同,需要考虑独立数字串与非独立数字串的区别。在查询数字串时需要去索引中进行关键词匹配,取出关键词指向的文本链表,归并多个或者一个文档链表的信息,计算文档相关性。查询数字串“a1a2a3…an”,首先根据切割方法对数字串按固定长度切分,如果n小于k的时候,用于检索的关键词就是数字串本身,如果n大于k,数字串就会被切分成固定块大小。在索引中,数字串关键词之间没有直接联系,也就是说索引不知道当前要查询的关键词是一个长数字串的切分后的一个固定长度串还是本身就是一个独立的数字串,也就是说查询关键词“a1a2…ak”可能是查询数字串“a1a2…an”切分后的一个子关键词串,也可能就是查询串“a1a2…ak”本身。这就需要我们在索引查询外围对这两种状态进行区分,对切分后的关键词打一个标记,此类标记一般采用特殊字符做前缀或者后缀与切分后的数字串相连组成,在数字串查询关键词中如果出现特殊字符前缀或者后缀,表示此数字串关键词是一个长数字串的一部分,反之就是独立串。数字串索引查询过程如图11所示,过程如下:
步骤1102,切分查询数字串。
步骤1104,查询数字串长度是否超过固定长度,在超过固定长度时,进入步骤1106,没有超过固定长度时,进入步骤1108。
步骤1106,对其切割后的数字关键词加前缀或者后缀。
步骤1108,查询索引库,对有前缀或者后缀的数字串,归并各自的索引结果,由索引文档信息计算相关性,对没有前缀或者后缀的数字串,只计算其本身指向的文档链表相关性,不做归并操作。
步骤1110,查询结束,根据相关性大小输出结果。
上述切分步骤的详细过程,可以如图12所示:
步骤1202,如果原始数字串长度超过固定长度,对查询数字串按固定长度做切分。切分时从左向右开始,切割k个数字字符为一个新串。
步骤1204,判断剩余原始串长度是否大于固定长度,当剩余数字串长度大于固定串时,返回步骤1202,循环处理剩余的数字串,当剩余数字串长度小于等于固定串时,切分结束。
本发明的实施例,针对背景技术在数字串上的缺陷,采用对数字串按固定长度切割的方法进行索引。对于每个数字串,总体处理流程如图13所示:
步骤1302,判断是否有需要进行索引的文档。
步骤1304,读取待索引的文档。
步骤1306,对文档进行分词和位置标记。
步骤1308,进行数字串的拆分处理。
步骤1310,将生成的索引添加到索引库。
具体处理流程如图14所示:
步骤1402,依次从文档中读取关键词。
步骤1404,判断是否还有词剩余,是则进入步骤1406,否则结束操作。
步骤1406,判断该词是否为数字串,是则进入步骤1408,否则返回步骤1404。
步骤1408,假设数字串原始长度为L,系统预设的拆分长度阈值为K,当前数字串在文档中的偏移位置为p,设i=0。
步骤1410,判断数字串长度L是否超过设定的拆分长度阈值K,如果不超过,则返回步骤1404,否则,进入步骤1412。
步骤1412,判断i+K是否大于串长度L,如果是,进行步骤1414,否则进入步骤1424。
步骤1414,截取数字串(i,i+K)之间的数字组成生成新词。
步骤1416,判断i是否为0,是则进入步骤1418,否则进入步骤1420。
步骤1418,在新词的尾部添加数字串拆分标记符,记录位置为p,输出。
步骤1420,在新词的头、尾部都添加数字拆分串标记符,记录位置为p,输出。
步骤1422,位置p加1,i加上K,并返回步骤1412。
步骤1424,截取数字串(i,L)之间的数字组成生成新词。
步骤1426,如果i=0,则在新词的头部添加数字串拆分标记符,记录位置为p,输出。
步骤1428,位置p加1,返回步骤1404。
假设数字拆分长度阈值为5,拆分串标记符为“#”。例如,对于文档:“我的电话号码是82288228”,进行切词、词位置标记处理后,正排索引为:
(我,1)/(的,2)/(电话,3)/(号码,4)/(是,5)/(82288228,6)
数字串拆分处理后,正排索引为:
(我,1)/(的,2)/(电话,3)/(号码,4)/(是,5)/(82288#,6)/(#228,7)
针对输出结果,索引流程建立基于位置的倒排文件索引。
检索阶段,对用户请求串的预处理采用相同的策略,请求串中包含的数字串被处理成相应的数字拆分串,并生成精确串检索子句,完成用户请求的检索。例如,对于用户查询:“电话号码82288228”,检索串预处理成:
(电话,1)/(号码,2)/(82288228,3)
数字串拆分处理后结果如下:
(电话,1)/(号码,2)/(82288#,3)/(#228,4)
对“(82288#,3)/(#228,3)”生成精确串子查询,与其他检索项按照正常处理逻辑完成检索。
数字串拆分符号可以是任意一个不参与索引和检索的符号。本系统为了表述方便,选取“#”作为数字串拆分符号。由于数字串拆分符号不参与索引和检索,因此信息预处理生成的正常关键词集合中不会包含数字拆分串,不会产生检索阶段的冲突。对于数字串拆分后获得的子串,首尾子串的拆分标记符号添加方式有所不同。主要目的是为了标记出非规则词的首尾边界,避免检索时出现部分匹配被判定为完整匹配的现象。
数字串拆分长度阈值的设定,决定了词典文件中最大包含数字串关键词的个数。例如,设定k=4时,词典文件将仅需提供10000个关键词空间,即可支持任意数字串的查询。由此可见,k值越小,词典文件的规模越小,所占用的内存空间越小。拆分长度阈值选择还需要兼顾数字串的查询效率,例如,设定K=4时,18位的身份证号被拆分成5个词,检索过程需要对拆分后的5个词进行精确串查询。由此可见k值越小,检索过程中涉及的词越多,检索运算量越大。通过分析文档集中数字串的分布特征,以及查询日志中数字串查询的分布特征,可以获得较为合理的阈值。在我们的系统中,用户提交的数字串查询主要涉及10位的QQ号和8位电话号码,综合考虑上述二方面因素,选择K=5获得很好的运行效果(二类主要的查询都仅进行两词的精确串检索)。
综上所述,根据本发明的技术方案,可以实现索引装置、索引方法、检索装置、检索方法和检索系统,在搜索引擎信息预处理阶段引入了对数字串拆分处理,可以将数字按照一定的阈值拆分成固定长度的子串建立索引,检索阶段将拆分后的数字子串进行精确串检索,从而实现数字串的检索。本发明的技术方案大大减少索引字典中数字串关键词占用的空间,同时提高了数字串关键词在文档集中的出现频率,有利于提高倒排文档列表的压缩效果。数字串拆分索引策略保证了搜索引擎的核心数据结构“索引词典文件”的大小不随文档集合的膨胀而线性增长,使词典文件在运行状态全部存储在内存中,在不降低检索的准确性的前提下,大大提高检索效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种索引装置,其特征在于,包括:
数字串切分模块,对文档中的数字串进行切分;
索引建立模块,根据切分后得到的新数字串和所述文档建立索引。
2.根据权利要求1所述的索引装置,其特征在于,还包括:
固定长度设置模块,设置固定长度;
所述数字串切分模块按所述固定长度对所述字符串进行切分。
3.一种索引方法,其特征在于,包括:
步骤202,数字串切分模块对文档中的数字串进行切分;
步骤204,索引建立模块根据切分后得到的新数字串和所述文档建立索引。
4.根据权利要求3所述的索引方法,其特征在于,在所述步骤202之前,还包括:固定长度设置模块设置固定长度;
所述步骤202具体包括:所述数字串切分模块按照所述固定长度对所述数字串进行切分。
5.一种检索装置,其特征在于,包括:
数字串切分模块,对检索串中的数字串进行切分;
检索模块,根据切分后得到的新数字串,在预建立的索引中进行检索。
6.根据权利要求5所述的检索装置,其特征在于,还包括:
如权利要求1或2所述的索引装置,以预建立所述索引。
7.根据权利要求6所述的检索装置,其特征在于,所述数字串切分模块还在所述新数字串的被切分处添加标记;
所述检索模块根据所述标记,获取所述新字符串,并统计所述新字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。
8.一种检索方法,其特征在于,包括:
步骤402,数字串切分模块对检索串中的数字串进行切分;
步骤404,检索模块根据切分后得到的新数字串,在预建立的索引中进行检索。
9.根据权利要求8所述的检索方法,其特征在于,在所述步骤402之前,还包括:
通过如权利要求3或4所述的索引方法,以预建立所述索引。
10.根据权利要求9所述的检索方法,其特征在于,在所述步骤402中,还包括:所述数字串切分模块在所述新数字串的被切分处添加标记;
所述步骤404具体包括:所述检索模块根据所述标记,获取所述新字符串,并统计所述新字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。
11.一种检索系统,其特征在于,包括:
权利要求1或2所述的索引装置;
权利要求5至7中任一项所述的检索装置,所述检索装置使用其生成的新数字串,在所述索引装置建立的索引中进行检索。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103195686A CN103064847A (zh) | 2011-10-20 | 2011-10-20 | 索引装置、索引方法、检索装置、检索方法和检索系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103195686A CN103064847A (zh) | 2011-10-20 | 2011-10-20 | 索引装置、索引方法、检索装置、检索方法和检索系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103064847A true CN103064847A (zh) | 2013-04-24 |
Family
ID=48107477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103195686A Pending CN103064847A (zh) | 2011-10-20 | 2011-10-20 | 索引装置、索引方法、检索装置、检索方法和检索系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103064847A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572871A (zh) * | 2014-12-19 | 2015-04-29 | 乐视网信息技术(北京)股份有限公司 | 基于索引表检索的方法及装置 |
CN104572879A (zh) * | 2014-12-19 | 2015-04-29 | 乐视网信息技术(北京)股份有限公司 | 更新索引表的方法及装置、基于索引表检索的方法及装置 |
CN105930468A (zh) * | 2016-04-22 | 2016-09-07 | 江苏金鸽网络科技有限公司 | 一种基于规则的信息相关性判定方法 |
CN110362650A (zh) * | 2018-04-09 | 2019-10-22 | 深圳企业云科技股份有限公司 | 精准分词实现文件全文搜索的检索方法 |
CN111078824A (zh) * | 2019-12-18 | 2020-04-28 | 南京录信软件技术有限公司 | 一种减少Lucene无字典n-gram切词占用存储空间的方法 |
CN117472792A (zh) * | 2022-07-20 | 2024-01-30 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040260679A1 (en) * | 2003-06-19 | 2004-12-23 | International Business Machines Corporation | Personalized indexing and searching for information in a distributed data processing system |
CN101079032A (zh) * | 2006-06-23 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 数字串模糊匹配的方法 |
-
2011
- 2011-10-20 CN CN2011103195686A patent/CN103064847A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040260679A1 (en) * | 2003-06-19 | 2004-12-23 | International Business Machines Corporation | Personalized indexing and searching for information in a distributed data processing system |
CN101079032A (zh) * | 2006-06-23 | 2007-11-28 | 腾讯科技(深圳)有限公司 | 数字串模糊匹配的方法 |
Non-Patent Citations (3)
Title |
---|
方冰等: "高性能FTP搜索引擎的设计", 《南京邮电大学学报(自然科学版)》 * |
王华栋等: "基于搜索引擎的中文分词评估方法", 《情报科学》 * |
赵海等: "基于有效子串标注的中文分词", 《中文信息学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572871A (zh) * | 2014-12-19 | 2015-04-29 | 乐视网信息技术(北京)股份有限公司 | 基于索引表检索的方法及装置 |
CN104572879A (zh) * | 2014-12-19 | 2015-04-29 | 乐视网信息技术(北京)股份有限公司 | 更新索引表的方法及装置、基于索引表检索的方法及装置 |
CN105930468A (zh) * | 2016-04-22 | 2016-09-07 | 江苏金鸽网络科技有限公司 | 一种基于规则的信息相关性判定方法 |
CN105930468B (zh) * | 2016-04-22 | 2019-05-17 | 江苏金鸽网络科技有限公司 | 一种基于规则的信息相关性判定方法 |
CN110362650A (zh) * | 2018-04-09 | 2019-10-22 | 深圳企业云科技股份有限公司 | 精准分词实现文件全文搜索的检索方法 |
CN111078824A (zh) * | 2019-12-18 | 2020-04-28 | 南京录信软件技术有限公司 | 一种减少Lucene无字典n-gram切词占用存储空间的方法 |
CN117472792A (zh) * | 2022-07-20 | 2024-01-30 | 摩尔线程智能科技(北京)有限责任公司 | 用于管理存储空间的装置及方法、计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100527125C (zh) | 一种统计机器翻译中的在线翻译模型选择方法和系统 | |
TWI480746B (zh) | 使用經結構化之資料儲存器達到較快速全文檢索 | |
US8301437B2 (en) | Tokenization platform | |
CN100458795C (zh) | 一种智能组词输入的方法和一种输入法系统及其更新方法 | |
CN100437585C (zh) | 基于倒排表进行检索提示的方法 | |
US20120166414A1 (en) | Systems and methods for relevance scoring | |
CN104021198B (zh) | 基于本体语义索引的关系数据库信息检索方法及装置 | |
CN103309852A (zh) | 一种基于统计和规则的特定领域的合成词发现方法 | |
Chen et al. | Template detection for large scale search engines | |
CN104391908B (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
CN102567409A (zh) | 一种提供检索关联词的方法及装置 | |
CN110532347A (zh) | 一种日志数据处理方法、装置、设备和存储介质 | |
WO2012159558A1 (zh) | 基于语意识别的自然语言处理方法、装置和系统 | |
CN101751434A (zh) | 一种元搜索引擎的排名方法及元搜索引擎 | |
CN103064844A (zh) | 索引装置、索引方法、检索装置、检索方法和检索系统 | |
CN102339294A (zh) | 一种对关键词进行预处理的搜索方法和系统 | |
CN103064847A (zh) | 索引装置、索引方法、检索装置、检索方法和检索系统 | |
CN111400323A (zh) | 数据检索方法、系统、设备及存储介质 | |
CN112115361A (zh) | 一种基于elasticsearch的数据检索优化方法及系统 | |
CN103116607B (zh) | 一种新的基于汉语拼音的全文检索系统 | |
CN116090413A (zh) | 一种基于序列化的通用rdf数据压缩方法 | |
CN102147796B (zh) | 一种词汇检索方法及其装置 | |
KR20010107810A (ko) | 웹 검색시스템 및 그 방법 | |
CN116578666B (zh) | 段句位的倒排索引结构设计及其限定运算全文检索的方法 | |
JP2002132789A (ja) | 文書検索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130424 |