CN103064844A - 索引装置、索引方法、检索装置、检索方法和检索系统 - Google Patents

索引装置、索引方法、检索装置、检索方法和检索系统 Download PDF

Info

Publication number
CN103064844A
CN103064844A CN2011103195629A CN201110319562A CN103064844A CN 103064844 A CN103064844 A CN 103064844A CN 2011103195629 A CN2011103195629 A CN 2011103195629A CN 201110319562 A CN201110319562 A CN 201110319562A CN 103064844 A CN103064844 A CN 103064844A
Authority
CN
China
Prior art keywords
character string
cutting
irregular
index
module
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
Application number
CN2011103195629A
Other languages
English (en)
Inventor
许欢庆
吴尉林
夏亮
郭永福
陈沛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhongsou Network Technology Co ltd
Original Assignee
Beijing Zhongsou Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Zhongsou Network Technology Co ltd filed Critical Beijing Zhongsou Network Technology Co ltd
Priority to CN2011103195629A priority Critical patent/CN103064844A/zh
Publication of CN103064844A publication Critical patent/CN103064844A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种索引装置,包括:非规则字符串切分模块,对文档中的非规则字符串进行切分;索引建立模块,根据切分后得到的字符串和所述文档建立索引。在该技术方案中,提出对文档中的非规则字符串进行切分,将切分后的新字符串作为关键词建立索引,可以合理地控制索引结构中的关键词指向的文件链表的长度,以及关键词列表的长度,即能够控制索引大小在计算机内存可接受的范围内,可以提高字符串检索速度。本发明还提供一种索引方法、一种检索装置、一种检索装置和一种检索系统。

Description

索引装置、索引方法、检索装置、检索方法和检索系统
技术领域
本发明涉及计算机技术领域,具体而言,涉及索引装置、索引方法、检索装置、检索方法和检索系统。
背景技术
搜索引擎已经成为互联网的主要入口,人们通过搜索引擎查询和定位互联网信息资源。传统的搜索引擎索引方法是采用关键词指向文档的倒排索引的方式。在倒排索引中,关键词是按照自然语义切分而来,切分的规则符合自然用语习惯,所以关键词列表的大小是在计算机硬件可接受的一个范围内的。一般的做法都是将关键词列表全部放到内存中,达到快速访问的目的。
具体地,主流的搜索引擎采用倒排索引技术,通过建立检索关键词到文档之间的庞大倒排映射表,实现用户检索请求的快速检索。倒排索引的建立过程中,首先对输入文档进行处理,按照一定语法、语义规则抽取能够表达文档的关键词集合,然后建立词到文档集合的映射表。对于英文而言,通常将空格作为语义分割符号,切分后的单词进行相应的预处理(比如,去词根处理等)作为关键词。中文文档没有显式的词语分割标记,通常采用基于统计规则、语法规则等策略的分词引擎对文档进行关键词切分,获得关键词集合。文档预处理阶段获得的关键词包括:中文词、英文单词、数字串、标点符号等。通常,人们遵循自然用语习惯进行文档撰写,文档预处理过程抽取的关键词总量(通常小于千万)在一定数量范围之内,不会随着索引文档数量的增加而线性膨胀。但是,随着互联网技术的发展,网络媒体的传播自由、便捷分享、即时沟通等特性很快吸引了大量用户,创造了海量的原创信息。区别于传统文档,网络信息不再严格遵循已有语法、语用习惯,行文更趋自由,产生了层出不穷的新鲜词汇。同时,互联网信息繁杂,文档内容极其丰富,各种专业领域也创造了非常用词汇。比如,药名、企业名、个人昵称、网络用语等。这些词汇具有低频、量大、词长的特征,我们将其称之为非规则词。由于,用户提交的搜索引擎检索请求具有“长尾效应”,这些词汇在某些场景下具有重要的价值。
“非规则字符串”是不准遵循自然语义的字符串,所以按照正常切分程序没有办法对其进行切分。在这种情况下,按照传统模式可以采用两种方法进行索引:
第一种方法:一个非规则字符串当作一个关键词,但这种情况下,每个关键词对应的文档很少,甚至可能只对应一篇文档,这样也就造成了大量的资源浪费;第二种方法:非规则字符串中的单个字符做关键词,这种方法与第一种方法相比,优点是关键词列表的大小大大减小,不足的地方是每一个关键词指向的文档数增加,并且每一次非规则串的查询计算量将大大增加,相应的查询速度就是变慢。以上两种方法各有利弊,第一个采用空间换时间的做法,但是硬件资源会浪费,第二个采用时间换空间,但是查询一次非常耗时,两者都没有很好的解决非规则串的索引问题。
因此,需要一种新的用非规则字符串建立索引和进行检索的方法,使得用户可以在现有的计算机硬件条件下,利用文档中的非规则字符串建立索引和进行检索,在获得更好的检索效果的同时,减小索引数据所占内存空间,并提高检索效率。
发明内容
本发明要解决的技术问题在于,提供一种新的用非规则字符串建立索引和进行检索的方法,使得用户可以在现有的计算机硬件条件下,利用文档中的非规则字符串建立索引和进行检索,在获得更好的检索效果的同时,减小索引数据所占内存空间,并提高检索效率。
有鉴于此,本发明提出了一种索引装置,包括:非规则字符串切分模块,对文档中的非规则字符串进行切分;索引建立模块,根据切分后得到的字符串和所述文档建立索引。在该技术方案中,提出对文档中的非规则字符串进行切分,将切分后的新字符串作为关键词建立索引,可以合理地控制索引结构中的关键词指向的文件链表的长度,以及关键词列表的长度,即能够控制索引大小在计算机内存可接受的范围内,可以提高字符串检索速度。
在上述技术方案中,优选地,还包括:过滤模块,创建规范词典和/或规范规则库,并判断当前词是否在所述规范词典中和/或是否符合所述规范规则库中的规则,并在判断结果为否时,确定所述当前词为所述非规则字符串,并启用所述规则字符串切分模块。通过该技术方案,可以有效过滤出非规则字符串,不致遗漏。
在上述技术方案中,优选地,还包括:固定长度设置模块,设置固定长度;所述非规则字符串切分模块按所述固定长度对所述非规则字符串进行切分。在该技术方案中,具体地,可以首先设置一个固定长度,然后以此固定长度对非规则字符串进行切分,如果原字符串长度小于或等于固定长度,则无需切分而将该字符串直接作为关键词建立索引;如果原非规则字符串长度大于固定长度,则对该字符串以一定方向如从左向右等进行切分,并将切分后得到的新字符串作为关键词建立索引;由于原字符串的长度可能不是固定长度的整数倍,因而切分后得到的最后一段字符串长度可能小于固定长度,但不影响建立相关索引。固定长度影响切分出来的字符串,该字符串作为关键词时,太短则导致关键词指向的文件链表太长,每一次查询的计算量大,太长会导致关键词列表太长,都会对计算机硬件资源造成一定压力,因此需要设置较为合理的固定长度。
本发明还提出了一种索引方法,包括:步骤202,非规则字符串切分模块对文档中的非规则字符串进行切分;步骤204,索引建立模块根据切分后得到的字符串和所述文档建立索引。在该技术方案中,提出对文档中的非规则字符串进行切分,将切分后的新字符串作为关键词建立索引,可以合理地控制索引结构中的关键词指向的文件链表的长度,以及关键词列表的长度,即能够控制索引大小在计算机内存可接受的范围内,可以提高非规则字符串检索速度。
在上述技术方案中,优选地,在所述步骤202之前,还包括:过滤模块创建规范词典和/或规范规则库,并判断当前词是否在所述规范词典中和/或是否符合所述规范规则库中的规则,并在判断结果为否时,确定所述当前词为所述非规则字符串,并进入所述步骤202。通过该技术方案,可以有效过滤出非规则字符串,不致遗漏。
在上述技术方案中,优选地,在所述步骤202之前,还包括:固定长度设置模块设置固定长度;所述步骤202具体包括:所述非规则字符串切分模块按所述固定长度对所述非规则字符串进行切分。在该技术方案中,具体地,可以首先设置一个固定长度,然后以此固定长度对非规则字符串进行切分,如果原字符串长度小于或等于固定长度,则无需切分而将该字符串直接作为关键词建立索引;如果原非规则字符串长度大于固定长度,则对该字符串以一定方向如从左向右等进行切分,并将切分后得到的新字符串作为关键词建立索引;由于原字符串的长度可能不是固定长度的整数倍,因而切分后得到的最后一段字符串长度可能小于固定长度,但不影响建立相关索引。固定长度影响切分出来的字符串,该字符串作为关键词时,太短则导致关键词指向的文件链表太长,每一次查询的计算量大,太长会导致关键词列表太长,都会对计算机硬件资源造成一定压力,因此需要设置较为合理的固定长度。
本发明还提出了一种检索装置,包括:非规则字符串切分模块,对检索串中的非规则字符串进行切分;检索模块,根据切分后得到的字符串,在预建立的索引中进行检索。在该技术方案中,提出对检索串的非规则字符串进行切分,将切分后的新字符串作为关键词进行检索;而对于原检索串中的规则字符串,则依然按照传统方式进行检索,最后将根据检索结果进行相关性计算后,呈现给用户。
在上述技术方案中,优选地,还包括:如上述的索引装置,以预建立所述索引。通过该技术方案,结合按上述技术方案得到的索引,能够进一步优化检索。
在上述技术方案中,优选地,所述非规则字符串切分模块还在所述字符串的被切分处添加标记;所述检索模块根据所述标记,获取所述字符串,并统计所述字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。通过该技术方案,可以整合切分出的字符串对应的所有结果,有利于保证检索的准确性。
本发明还提出了一种检索方法,包括:步骤402,非规则字符串切分模块对检索串中的非规则字符串进行切分;步骤404,检索模块根据切分后得到的字符串,在预建立的索引中进行检索。在该技术方案中,提出对检索串的非规则字符串进行切分,将切分后的新字符串作为关键词进行检索;而对于原检索串中的规则字符串,则依然按照传统方式进行检索,最后根据检索结果进行相关性计算后,呈现给用户。
在上述技术方案中,优选地,在所述步骤404之前,还包括:根据如上述的索引方法,预建立所述索引。通过该技术方案,结合按上述技术方案得到的索引,能够进一步优化检索。
在上述技术方案中,优选地,在所述步骤402中,还包括:所述非规则字符串切分模块在所述字符串的被切分处添加标记;所述步骤404具体包括:所述检索模块根据所述标记,获取所述字符串,并统计所述字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。通过该技术方案,可以整合切分出的字符串对应的所有结果,有利于保证检索的准确性。
本发明还提出了一种检索系统,包括:如上所述的索引装置;如上所述的检索装置,所述检索装置使用其生成的字符串,在所述索引装置建立的索引中进行检索。在该技术方案中,索引装置通过将文档中的非规则字符串按固定长度切分,并将切分后得到的字符串作为关键词建立索引;而检索装置通过将检索串中的字符串按固定长度切分,并将切分后得到的字符串作为关键词进行检索,通过对非规则字符串的这种切分处理,从而既控制了索引占用计算机内存的大小,也能够提高检索结果相关性计算的速度,保证检索效率。
附图说明
图1是根据本发明的一个实施例的索引装置的框图;
图2是根据本发明的一个实施例的索引方法的流程图;
图3是根据本发明的一个实施例的检索装置的框图;
图4是根据本发明的一个实施例的检索方法的流程图;
图5是根据本发明的一个实施例的检索系统的框图;
图6是现有搜索引擎中检索用的数据结构的示意图;
图7是根据本发明的一个实施例的索引方法的切分字符串的示意图;
图8是根据本发明的一个实施例的索引方法的切分字符串的示意图;
图9是根据本发明的一个实施例的索引方法的切分字符串的流程图;
图10是根据本发明的一个实施例的索引方法的流程图;
图11是根据本发明的一个实施例的检索方法的流程图;
图12是根据本发明的一个实施例的索引方法的流程图;
图13是根据本发明的一个实施例的索引方法的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1是根据本发明的一个实施例的索引装置的框图。
如图1所示,本发明提出了一种索引装置100,包括:非规则字符串切分模块102,对文档中的非规则字符串进行切分;索引建立模块104,根据切分后得到的字符串和所述文档建立索引。在该技术方案中,提出对文档中的非规则字符串进行切分,将切分后的新字符串作为关键词建立索引,可以合理地控制索引结构中的关键词指向的文件链表的长度,以及关键词列表的长度,即能够控制索引大小在计算机内存可接受的范围内,可以提高字符串检索速度。
在上述技术方案中,还包括:过滤模块106,创建规范词典和/或规范规则库,并判断当前词是否在所述规范词典中和/或是否符合所述规范规则库中的规则,并在判断结果为否时,确定所述当前词为所述非规则字符串,并启用所述规则字符串切分模块102。通过该技术方案,可以有效过滤出非规则字符串,不致遗漏。
在上述技术方案中,还包括:固定长度设置模块108,设置固定长度;所述非规则字符串切分模块102按所述固定长度对所述非规则字符串进行切分。在该技术方案中,具体地,可以首先设置一个固定长度,然后以此固定长度对非规则字符串进行切分,如果原字符串长度小于或等于固定长度,则无需切分而将该字符串直接作为关键词建立索引;如果原非规则字符串长度大于固定长度,则对该字符串以一定方向如从左向右等进行切分,并将切分后得到的新字符串作为关键词建立索引;由于原字符串的长度可能不是固定长度的整数倍,因而切分后得到的最后一段字符串长度可能小于固定长度,但不影响建立相关索引。固定长度影响切分出来的字符串,该字符串作为关键词时,太短则导致关键词指向的文件链表太长,每一次查询的计算量大,太长会导致关键词列表太长,都会对计算机硬件资源造成一定压力,因此需要设置较为合理的固定长度。
图2是根据本发明的一个实施例的索引方法的流程图。
如图2所示,本发明还提出了一种索引方法,包括:步骤202,非规则字符串切分模块对文档中的非规则字符串进行切分;步骤204,索引建立模块根据切分后得到的字符串和所述文档建立索引。在该技术方案中,提出对文档中的非规则字符串进行切分,将切分后的新字符串作为关键词建立索引,可以合理地控制索引结构中的关键词指向的文件链表的长度,以及关键词列表的长度,即能够控制索引大小在计算机内存可接受的范围内,可以提高非规则字符串检索速度。
在上述技术方案中,在所述步骤202之前,还包括:过滤模块创建规范词典和/或规范规则库,并判断当前词是否在所述规范词典中和/或是否符合所述规范规则库中的规则,并在判断结果为否时,确定所述当前词为所述非规则字符串,并进入所述步骤202。通过该技术方案,可以有效过滤出非规则字符串,不致遗漏。
在上述技术方案中,在所述步骤202之前,还包括:固定长度设置模块设置固定长度;所述步骤202具体包括:所述非规则字符串切分模块按所述固定长度对所述非规则字符串进行切分。在该技术方案中,具体地,可以首先设置一个固定长度,然后以此固定长度对非规则字符串进行切分,如果原字符串长度小于或等于固定长度,则无需切分而将该字符串直接作为关键词建立索引;如果原非规则字符串长度大于固定长度,则对该字符串以一定方向如从左向右等进行切分,并将切分后得到的新字符串作为关键词建立索引;由于原字符串的长度可能不是固定长度的整数倍,因而切分后得到的最后一段字符串长度可能小于固定长度,但不影响建立相关索引。固定长度影响切分出来的字符串,该字符串作为关键词时,太短则导致关键词指向的文件链表太长,每一次查询的计算量大,太长会导致关键词列表太长,都会对计算机硬件资源造成一定压力,因此需要设置较为合理的固定长度。
图3是根据本发明的一个实施例的检索装置的框图。
如图3所示,本发明还提出了一种检索装置300,包括:非规则字符串切分模块302,对检索串中的非规则字符串进行切分;检索模块304,根据切分后得到的字符串,在预建立的索引中进行检索。在该技术方案中,提出对检索串的非规则字符串进行切分,将切分后的新字符串作为关键词进行检索;而对于原检索串中的规则字符串,则依然按照传统方式进行检索,最后将根据检索结果进行相关性计算后,呈现给用户。
在上述技术方案中,还包括:如上述的索引装置100,以预建立所述索引。通过该技术方案,结合按上述技术方案得到的索引,能够进一步优化检索。
在上述技术方案中,所述非规则字符串切分模块302还在所述字符串的被切分处添加标记;所述检索模块304根据所述标记,获取所述字符串,并统计所述字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。通过该技术方案,可以整合切分出的字符串对应的所有结果,有利于保证检索的准确性。
图4是根据本发明的一个实施例的检索方法的流程图。
如图4所示,本发明还提出了一种检索方法,包括:步骤402,非规则字符串切分模块对检索串中的非规则字符串进行切分;步骤404,检索模块根据切分后得到的字符串,在预建立的索引中进行检索。在该技术方案中,提出对检索串的非规则字符串进行切分,将切分后的新字符串作为关键词进行检索;而对于原检索串中的规则字符串,则依然按照传统方式进行检索,最后根据检索结果进行相关性计算后,呈现给用户。
在上述技术方案中,在所述步骤404之前,还包括:根据如上述的索引方法,预建立所述索引。通过该技术方案,结合按上述技术方案得到的索引,能够进一步优化检索。
在上述技术方案中,在所述步骤402中,还包括:所述非规则字符串切分模块在所述字符串的被切分处添加标记;所述步骤404具体包括:所述检索模块根据所述标记,获取所述字符串,并统计所述字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。通过该技术方案,可以整合切分出的字符串对应的所有结果,有利于保证检索的准确性。
图5是根据本发明的一个实施例的检索系统的框图。
如图5所示,本发明还提出了一种检索系统500,包括:如上所述的索引装置100;如上所述的检索装置300,所述检索装置300使用其生成的字符串,在所述索引装置100建立的索引中进行检索。在该技术方案中,索引装置通过将文档中的非规则字符串按固定长度切分,并将切分后得到的字符串作为关键词建立索引;而检索装置通过将检索串中的字符串按固定长度切分,并将切分后得到的字符串作为关键词进行检索,通过对非规则字符串的这种切分处理,从而既控制了索引占用计算机内存的大小,也能够提高检索结果相关性计算的速度,保证检索效率。
以下详细说明本发明的技术方案。
首先,需要说明的是,搜索引擎主要采用词典文件、倒排列表文件、位置列表文件等三个数据结构实施检索操作逻辑,如图6所示。其中,词典文件记录词和词的倒排文档列表在倒排列表文件中的偏移信息。倒排列表文件记录了所有词的倒排文档列表数据。位置列表文件记录所有词的在文档中出现的位置信息。基于查询效率考虑,运行态的搜索引擎优先将词典文件导入内存,以便快速查询定位,倒排列表文件和位置文件的访问采用直接磁盘操作。
结合背景技术中内容,考虑到海量的新词数据,词典文件的规模已经远远超出了目前服务器内存的容量,搜索引擎服务器无法一次性载入词典文件到内存中,转而采用多级索引的方式保存词典文件,将部分词典数据保存在磁盘。
多级索引的词典存储方法,搜索引擎服务器无法一次性载入词典文件到内存中,查询过程需要进行多次慢速的磁盘读写操作,严重恶化了检索效率。同时,倒排列表文件和位置列表文件都引入了差值压缩算法对倒排记录中的文档编号、位置信息等数据进行压缩,由于绝大多数的非规则词的使用频率较低,甚至是仅出现在单篇文档中,使得压缩算法的实际效果不佳,索引压缩比大幅下降,磁盘空间浪费严重。尤其是当面对一些非规则串的时候,就会出现不理想的效果。
根据本发明的索引方案,是对非规则字符串采用固定长度进行切分,就是说对一个长度为N的非规则字符串按照固定长度K,切分成N/K段新的字符串。每一段字符串的长度最多为K,用这N/K个字符串做关键词,建索引。对非规则字符串的切分按照从左向右的顺序进行切分,保证左端被切分的新字符串的长度为K的情况下,进行下一次切分,切分到最后一个字符串时,当原非规则字符串剩下的字符串大于固定长度K时,切分K个长度的字符串做新串,再继续下一次,当原非规则字符串剩下的长度等于K时,切分K个字符串做新串,切分结束,当原非规则字符串剩下的长度小于K时,切分的剩下的字符串做新串,切分结束。
如图7所示,以固定长度6切分长度为15的非规则字符串,第一次切分(a1a2a3a4a5a6)与第二次切分(a7a8a9a10a11a12)时,剩余的原非规则字符串的长度都比固定长度大,所以切分下6个字符串组成的字符串,最后一次切分时,剩余3个字符串(a13a14a15),少于固定长度6,所以就用剩下的三个字符组成新串,切分结束。
而在图8中,以固定长度5切分长度为15的非规则字符串,同样,第一次切分(a1a2a3a4a5)与第二次切分(a6a7a8a9a10)时,剩余的原非规则字符串的长度都比固定长度大,所以切分下5个字符串(a11a12a13a14a15)组成的字符串,最后一次切分时,剩余5个字符串,等于固定长度,用剩下的5个字符组成新字符串,切分结束。
切分的固定长度的选取根据机器的硬件环境与实际的文档信息来决定,固定长度不宜太短也不宜太长。太短会造成在索引结构中,关键词指向的文件链表太长,每一次查询的计算量大,太长会造成关键词列表太长,计算机内存条件不允许,固定长度每增加一个长度,关键词列表的大小就增加一个指数级别。在计算中一个字符占8位,除一位标志位外,总共有128种字符,假设固定长度为K,那么切分后的新关键词列表的极限大小是:
Σ m = 1 K 128 m
在128个字符中并不是每个都会用来组合非规则字符串,比如说一些标点符号、空格等,所以上述公式的指数是小于128的,非规则字符串切分后的关键词列表最大不会超过上述公式计算到的大小。
对非规则字符串的切分流程如图9所示:
步骤902,设置切分固定长度K。
步骤904,判断原字符串长度是否大于固定长度,如果是,继续进行步骤906,如果不是,继续进行步骤908。
步骤906,从左侧开始切分K个字符做新的关键词串,并返回步骤904进行循环。
步骤908,将剩余的原字符串作为新的关键词,切分结束。
在建立索引的过程中,首先会将非规则字符串从文档中挑出来,这时候非规则串在原文档中是连续的一个非规则串,在非规则串的两端要么是基于规则的字符串,要么没有字符串。所以对于非规则字符串的切分是在分词之后,只针对非规则字符串的一个特殊处理,对于规则串按绕过此处理过程。添加索引的流程如图10所示:
步骤1002,对文档进行分词。
步骤1004,分词后的分档组成一个字符串集合,集合中的各个字符串独立存在。
步骤1006,判断字符串集合是否为空,字符串集合中如果不为空,继续步骤1008,如果字符串集合为空,结束操作。
步骤1008,从集合中拿取一个字符串,判断字符串是否是非规则字符串,如果是,继续进行步骤1010,如果不是继续进行步骤1012。
步骤1010,对非规则字符串进行切分,切分成固定长度的新的字符串,切分方式同图9所示实施例。
步骤1012,按新字符串关键词添加索引信息,直至添加索引结束。
在索引中没有非规则字符串的原完整字符串,但是在索引中记录了每一个字符串在原文档中的位置信息,由切分后的新字符串的位置信息可以还原原非规则字符串。比如说非规则串“abcdefghijklmnopq”在原文档中的位置是100,非规则字符串被切分为“abcdef”、”ghijkl”、”mnopq”三个新字符串,那第一个字符串的位置就是100,第二个是106,第三个是112,他们的位置信息加上本身长度就可以还原出原字符串了。
因为在索引中没有原非规则字符串,所以前部分中,查询非规则字符串时,也需要对原非规则字符串做同样的切分处理,先单个查询然后归并整个结果。这里就可能会出现两种情况,一种情况是前端用户想查询切分好的串组成的非规则串,一种情况是用户就是想单独查询各个串与的结果,比如说在索引后端见到前端传来的查询串“abcdef”和“ghijlm”两个字符串,这时候可能用户是想查询“abcdefghijlm”,只是被做了切分,也可能就是想查询同时包含这两个字符串的文档,因此在前段查询时对做了非规则字符串切分的新字符串做一个标记,与不切分的新字符串做以区分。例如我们以在切分后的新字符串后端加字符“#”来区同样的字符串,对于非规则串“abcdefghijklmnopq”,按照固定长度6做切分,切分后的三个新字符串是“abcdef#”、“ghijkl#”、“mnopq#”。
检索流程如图11所示:
步骤1102,接收带非规则字符串的查询串。
步骤1104,对查询串进行分词,切分后的字符串集合中包含原非规则串。
步骤1106,按照切分流程切分非规则字符串,在每一个切分后的新字符串添加后缀,组成新的查询关键词集合。
步骤1108,在索引库中查询新字符串集合,归并查询结果,计算相关性。
步骤1110,输出排序靠前的N个结果,直至查询结束。
本发明的实施例的技术方案,针对背景技术在处理非规则字符串的技术缺陷,采用对非规则字符串按固定长度切割的方法进行索引。非规则字符串具有字符串较长的特点。对于每个非规则字符串,具体处理流程如图12所示:
步骤1202,依次读取字符串,包括字符串本身以及字符串的位置。
步骤1204,判断是否还有字符串,是则进入步骤1206,否则结束操作。
步骤1206,判断是否为非规则字符串,是则进入步骤1208,否则返回步骤1204。
步骤1208,假设非规则字符串原始长度为L,系统预设的拆分长度阈值为K,当前非规则字符串在文档中的偏移位置为p,设i=0。
步骤1210,判断是长度L是否超过设定的拆分长度阈值K,如果不超过,则不进行任何处理,返回步骤1204,如果超过,则进入步骤1212。
步骤1212,判断i+K是否大于串长度L,如果是,进入步骤1214,如果否,进入步骤1224。
步骤1214,截取非规则词(i,i+K)之间的字符组成新字符串。
步骤1216,判断i是否等于0,是则进入步骤1218,否则进入步骤1220。
步骤1218,在新串尾部添加拆分标记符,记录位置信息p,并进行输出。
步骤1220,在新串头部、尾部添加拆分标记符,记录位置信息p,并进行输出。
步骤1222,在i上加K,在p加1,返回步骤1212。
步骤1224,截取非规则字符串(i,L)之间的字符组成生成新字符串,如果i=0,则在新字符串的尾部添加拆分标记符。
步骤1226,在新字符串的尾部都添加拆分串标记符。记录位置为p,输出。
步骤1228,位置p加1,i加上K,并返回步骤1204执行。
假设拆分长度阈值为5,拆分串标记符为“#”。例如,对于文档:“热烈庆祝新款涡轮变速箱odayuepiute-2001-12上市”,进行切词,切分后的字符串位置标记处理后,正排索引为:
(热烈,1)/(庆祝,2)/(新,3)/(款,4)/(涡轮,5)/(变速箱,6)/(odayuepiute-2001-12,7)/(上市,8)
其中,字符串“odayuepiute-2001-12”被识别为非规则字符串,进行如下处理:
(热烈,1)/(庆祝,2)/(新,3)/(款,4)/(涡轮,5)/(变速箱,6)/(odayu#,7)/(#epiute#,8)/(#-2001#,9)/(#-12,10)/(上市,11)
针对输出结果,索引流程建立基于位置的倒排文件索引。
检索阶段,对用户请求串的预处理采用相同的策略,请求串中包含的不规则字符串被处理成相应的不规则字符串拆分串,并生成精确串检索子句,完成用户请求的检索。例如,对于用户查询:“变速箱odayuepiute-2001-12”,检索串预处理成:
(变速箱,1)/(odayuepiute-2001-12,2)
非规则字符串处理后结果如下:
(变速箱,1)/(odayu#,2)/(#epiute#,3)/(#-2001#,4)/(#-12,5)
对(odayu#,2)/(#epiute#,3)/(#-2001#,4)/(#-12,5),生成精确串子查询,与其他检索字符串按照正常处理逻辑完成检索。
非规则字符串的识别可以多种方法实现,我们系统中采用了过滤策略。通过预先建立一个规范字符串词典和一些人工规则,识别过程只需判断当前字符串是否出现在规范词典或者满足规则与否,如果不满足则认为是非规则字符串。
非规则字符串拆分标记符号可以是任意一个不参与索引和检索的符号。本系统为了表述方便,选取“#”作为拆分标记符号。由于拆分标记符号不参与索引和检索,因此信息预处理生成的正常关键词集合中不会包含非规则字符串,不会产生检索阶段的冲突。对于不规则字符串拆分后获得的子串,首尾子串的拆分标记符号添加方式有所不同。主要目的是为了标记出非规则字符串的首尾边界,避免检索时出现部分匹配被判定为完整匹配的现象。
非规则字符串的拆分长度阈值的设定,决定了词典文件中最大包含非规则拆分词的个数。例如,设定k=4时,词典文件理论上需要提供最多26的4次方个关键词空间,即可支持任意英文非规则词的查询。由此可见,k值越小,词典文件的规模越小,所占用的内存空间越小。实际运行环境下,需要提供的关键词空间远小于理论值。拆分长度阈值选择还需要兼顾非规则词的查询效率,例如,设定K=5时,上述词“odayuepiute-2001-12”被拆分成4个词,检索过程需要对拆分后的4个词进行精确串查询。由此可见k值越小,检索过程中涉及的词越多,检索运算量越大。通过分析文档集中非规则词的分布特征,以及查询日志中非规则词查询的分布特征,可以获得较为合理的阈值。在我们的系统中,综合考虑上述二方面因素,选择K=7获得很好的运行效果(二类主要的查询都仅进行两词的精确串检索)。
图13示出了本发明的一个是实施例的索引的示意图。
具体包括:步骤1302,判断是否有需要进行索引的文档。
步骤1304,读取待索引的文档。
步骤1306,对文档进行分词和位置标记。
步骤1308,在文档中进行非规则词的识别。
步骤1310,对非规则词进行拆分处理。
步骤1312,将生成的索引添加到索引库。
综上所述,根据以上的技术方案,可以实现采用固定长度切分非规则字符串建立索引,减少非规则串在索引结构中的关键词列表达小,满足索引需要的硬件空间需求的同时,保证索引查询的效率以及查询的准确性,与传统索引模式对非规则串采用的两种方法相比,本发明有明显的改善,关键词列表的长度大大减少,一个关键词指向一个文档的现象被避免,节约了空间。也不会出现单个字符串指向的文档链表非常的长,影响查询的效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种索引装置,其特征在于,包括:
非规则字符串切分模块,对文档中的非规则字符串进行切分;
索引建立模块,根据切分后得到的字符串和所述文档建立索引。
2.根据权利要求1所述的索引装置,其特征在于,还包括:过滤模块,创建规范词典和/或规范规则库,并判断当前词是否在所述规范词典中和/或是否符合所述规范规则库中的规则,并在判断结果为否时,确定所述当前词为所述非规则字符串,并启用所述规则字符串切分模块。
3.根据权利要求1或2所述的索引装置,其特征在于,还包括:
固定长度设置模块,设置固定长度;
所述非规则字符串切分模块按所述固定长度对所述非规则字符串进行切分。
4.一种索引方法,其特征在于,包括:
步骤202,非规则字符串切分模块对文档中的非规则字符串进行切分;
步骤204,索引建立模块根据切分后得到的字符串和所述文档建立索引。
5.根据权利要求4所述的索引方法,其特征在于,在所述步骤202之前,还包括:过滤模块创建规范词典和/或规范规则库,并判断当前词是否在所述规范词典中和/或是否符合所述规范规则库中的规则,并在判断结果为否时,确定所述当前词为所述非规则字符串,并进入所述步骤202。
6.根据权利要求4或5所述的索引方法,其特征在于,在所述步骤202之前,还包括:固定长度设置模块设置固定长度;
所述步骤202具体包括:所述非规则字符串切分模块按所述固定长度对所述非规则字符串进行切分。
7.一种检索装置,其特征在于,包括:
非规则字符串切分模块,对检索串中的非规则字符串进行切分;
检索模块,根据切分后得到的字符串,在预建立的索引中进行检索。
8.根据权利要求7所述的检索装置,其特征在于,还包括:
如权利要求1至3中任一项所述的索引装置,以预建立所述索引。
9.根据权利要求8所述的检索装置,其特征在于,所述非规则字符串切分模块还在所述字符串的被切分处添加标记;
所述检索模块根据所述标记,将所有所述字符串所匹配的索引合并,以及对合并的索引中的文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。
10.一种检索方法,其特征在于,包括:
步骤402,非规则字符串切分模块对检索串中的非规则字符串进行切分;
步骤404,检索模块根据切分后得到的字符串,在预建立的索引中进行检索。
11.根据权利要求10所述的检索方法,其特征在于,在所述步骤404之前,还包括:
根据权利要求4至6中任一项所述的索引方法,预建立所述索引。
12.根据权利要求11所述的检索方法,其特征在于,在所述步骤402中,还包括:
所述非规则字符串切分模块在所述字符串的被切分处添加标记;
所述步骤404具体包括:所述检索模块根据所述标记,获取所述字符串,并统计所述字符串在所述文档中顺序出现的次数,以用于为所述文档计算相关性,并根据得到的相关性来选取作为检索结果的文档。
13.一种检索系统,其特征在于,包括:
权利要求1至3中任一项所述的索引装置;
权利要求7至9中任一项所述的检索装置,所述检索装置使用其生成的字符串,在所述索引装置建立的索引中进行检索。
CN2011103195629A 2011-10-20 2011-10-20 索引装置、索引方法、检索装置、检索方法和检索系统 Pending CN103064844A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011103195629A CN103064844A (zh) 2011-10-20 2011-10-20 索引装置、索引方法、检索装置、检索方法和检索系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103195629A CN103064844A (zh) 2011-10-20 2011-10-20 索引装置、索引方法、检索装置、检索方法和检索系统

Publications (1)

Publication Number Publication Date
CN103064844A true CN103064844A (zh) 2013-04-24

Family

ID=48107474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103195629A Pending CN103064844A (zh) 2011-10-20 2011-10-20 索引装置、索引方法、检索装置、检索方法和检索系统

Country Status (1)

Country Link
CN (1) CN103064844A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106610995A (zh) * 2015-10-23 2017-05-03 华为技术有限公司 一种创建密文索引的方法、装置及系统
CN106980961A (zh) * 2017-03-02 2017-07-25 中科天地互联网科技(苏州)有限公司 一种简历筛选匹配方法及系统
CN107422921A (zh) * 2017-08-31 2017-12-01 北京搜狗科技发展有限公司 一种输入方法、装置、电子设备以及存储介质
CN107436911A (zh) * 2017-05-24 2017-12-05 阿里巴巴集团控股有限公司 模糊查询方法、装置及查询系统
CN110362650A (zh) * 2018-04-09 2019-10-22 深圳企业云科技股份有限公司 精准分词实现文件全文搜索的检索方法
CN110908998A (zh) * 2019-11-13 2020-03-24 广联达科技股份有限公司 数据存储和搜索方法、系统和计算机可读存储介质
CN112307277A (zh) * 2020-09-29 2021-02-02 西安赢瑞电子有限公司 一种汉字串匹配预判方法
CN116227488A (zh) * 2023-05-09 2023-06-06 北京拓普丰联信息科技股份有限公司 一种文本分词的方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090094203A1 (en) * 2007-10-05 2009-04-09 Kim Ki Bom Apparatus and method for searching for digital forensic data
CN102043775A (zh) * 2009-10-16 2011-05-04 湖南大学 一种用于信息检索的任意大小n-gram频率统计方法及其装置
CN102087642A (zh) * 2009-11-04 2011-06-08 蒋贤春 Wkr分词方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090094203A1 (en) * 2007-10-05 2009-04-09 Kim Ki Bom Apparatus and method for searching for digital forensic data
CN102043775A (zh) * 2009-10-16 2011-05-04 湖南大学 一种用于信息检索的任意大小n-gram频率统计方法及其装置
CN102087642A (zh) * 2009-11-04 2011-06-08 蒋贤春 Wkr分词方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
方冰等: "高性能FTP搜索引擎的设计", 《南京邮电大学学报(自然科学版)》, vol. 27, no. 3, 30 June 2007 (2007-06-30) *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106610995A (zh) * 2015-10-23 2017-05-03 华为技术有限公司 一种创建密文索引的方法、装置及系统
CN106980961A (zh) * 2017-03-02 2017-07-25 中科天地互联网科技(苏州)有限公司 一种简历筛选匹配方法及系统
CN107436911A (zh) * 2017-05-24 2017-12-05 阿里巴巴集团控股有限公司 模糊查询方法、装置及查询系统
CN107422921A (zh) * 2017-08-31 2017-12-01 北京搜狗科技发展有限公司 一种输入方法、装置、电子设备以及存储介质
CN107422921B (zh) * 2017-08-31 2020-05-19 北京搜狗科技发展有限公司 一种输入方法、装置、电子设备以及存储介质
CN110362650A (zh) * 2018-04-09 2019-10-22 深圳企业云科技股份有限公司 精准分词实现文件全文搜索的检索方法
CN110908998A (zh) * 2019-11-13 2020-03-24 广联达科技股份有限公司 数据存储和搜索方法、系统和计算机可读存储介质
CN112307277A (zh) * 2020-09-29 2021-02-02 西安赢瑞电子有限公司 一种汉字串匹配预判方法
CN116227488A (zh) * 2023-05-09 2023-06-06 北京拓普丰联信息科技股份有限公司 一种文本分词的方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN103064844A (zh) 索引装置、索引方法、检索装置、检索方法和检索系统
US9069857B2 (en) Per-document index for semantic searching
Mitra Exploring session context using distributed representations of queries and reformulations
CN104537116B (zh) 一种基于标签的图书搜索方法
US8713024B2 (en) Efficient forward ranking in a search engine
US7849077B2 (en) Document ranking with sub-query series
JP4996300B2 (ja) ファイルシステムの検索ランキング方法および関連の検索エンジン
US20170177713A1 (en) Systems and Method for Searching an Index
CN101430695B (zh) 用于计算单词之间的差相关度的系统和方法
CN103198149A (zh) 一种查询纠错方法和系统
CN103440233A (zh) 一种科技论文标准化自动检测编辑系统
CN103440232A (zh) 一种科技论文标准化自动检测编辑方法
CN105404677B (zh) 一种基于树形结构的检索方法
CN1629837A (zh) 电子文档的处理、浏览及分类查询的方法、装置及其系统
CN106484815B (zh) 一种基于海量数据类sql检索场景的自动识别优化方法
Das et al. Indexing the world wide web: The journey so far
CN103064847A (zh) 索引装置、索引方法、检索装置、检索方法和检索系统
CN103064907A (zh) 基于无监督的实体关系抽取的主题元搜索系统及方法
CN1629843A (zh) 电子文档的处理、浏览及搜索的方法、装置及其系统
CN105426490A (zh) 一种基于树形结构的索引方法
KR102324571B1 (ko) 패시지단위 검색에서 향상된 검색결과를 제공하는 방법
KR102325249B1 (ko) 문서단위 검색과 패시지단위 검색을 통합하여 향상된 검색결과를 제공하는 방법
CN115617965A (zh) 一种语言结构大数据的快速检索方法
CN103530291A (zh) 适用于搜索引擎的关键词投放拓词方法及其装置
Matsumura et al. The Effect of Information Retrieval Method Using Dependency Relationship Between Words.

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: 20130424