CN102063446A - 一种建立倒排索引的方法及倒排索引装置 - Google Patents
一种建立倒排索引的方法及倒排索引装置 Download PDFInfo
- Publication number
- CN102063446A CN102063446A CN2009102376738A CN200910237673A CN102063446A CN 102063446 A CN102063446 A CN 102063446A CN 2009102376738 A CN2009102376738 A CN 2009102376738A CN 200910237673 A CN200910237673 A CN 200910237673A CN 102063446 A CN102063446 A CN 102063446A
- Authority
- CN
- China
- Prior art keywords
- hash
- entry
- cryptographic hash
- domain name
- correspondence
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种建立倒排索引的方法。A、提取待建立倒排索引的文档的域名信息以及该域名包含的词条对应的数据信息;B、获取域名对应的汉字编码或ASC码,根据获取的GBK码或ASC码以及预先设定的中英文哈希函数计算域名哈希值;C、查询哈希域表中是否存储有该域名哈希值,如果未存储有,执行步骤D,否则,执行步骤E;D、将获取的该域名哈希值存储在哈希域表中,执行步骤E;E、判断数据信息表中是否存储有提取的词条对应的数据信息,如果没有,将提取的词条对应的数据信息存储在数据信息表中。本发明还公开了一种倒排索引装置。应用本发明,能够扩大索引及搜索范围、降低哈希冲突的概率、提高查询效率。
Description
技术领域
本发明涉及数据信息索引技术,特别涉及一种建立倒排索引的方法及倒排索引装置。
背景技术
目前,数据搜索技术即搜索引擎技术已成为数据信息处理的一个热门技术,而索引是数据搜索技术的最重要的组成部分,通过构建结构简单、有效、性能优良的索引,可以帮助用户快捷地获取查询所需的信息,因而,索引的性能直接影响查询效率。
目前数据搜索技术的索引一般采用倒排索引,常用的创建、查询方式包括二分法、字典树(Trie树)法和哈希法,其中,二分法是将用于创建索引的词条按照一定的顺序排列,例如,按照字典顺序或者汉字内码顺序有序排列,并存储词条对应的数据,然后根据用户输入的搜索关键词,采用二分法从顺序排列中的词条中查找该搜索关键词对应的词条,再根据查询得到的词条获取相应的数据,将数据信息向用户显示输出;Trie树法是将用于创建索引的词汇表中的关键词以Trie树的形式组织起来,然后采用Trie树查找方式进行查询;哈希法是将用于建立索引的词条散列成一个哈希值,将该哈希值作为词条的访问地址,例如,根据词条首字构造二维数组,数组索引值根据词条首字的汉字编码确定,数组元素值指向与索引值相对应的汉字为首字的哈希表,该哈希表用于存储首字相同的词条除去首字后的后缀信息,根据词条后缀汉字编码,由哈希函数计算的哈希值确定词条在哈希表中的位置,通过词条首字的汉字编码确定数组索引值,在数组中找到相应的数组元素,确定该词条首字对应的哈希表,再根据词条后缀的汉字编码用哈希函数计算哈希值,确定该词条在哈希表中的位置。上述二分法索引构建及查找、Trie树法索引构建及查找和哈希法索引构建及查找的具体流程可参见相关技术文献,在此不再赘述。
由上述可见,目前采用的二分法,由于需要对词条或词汇表按字典顺序排列,对于插入的文档需要反复地调用排序算法和查找算法,索引合并时还需要通过堆排序等方法合并多个有序的词汇表,造成构建的索引结构较为复杂、查找效率一般,查找时间复杂度高;对于trie树法,由于索引的构建以词汇表中的关键词以Trie树的形式进行组织,在词汇表较大时,所需的存储空间大、实现也较为复杂,其查找时间与关键词的长度相关,与词汇表中关键词的个数无关,因而,在词汇表较大时,具有较大的速度优势,时间复杂度为:Log(词汇表长度),构建的索引查找效率一般好于二分查找,但词汇表较大时所需存储空间大、实现复杂;而对于哈希法,由于采用数组和哈希表相结合的词库构造方法,哈希表和词条都可以根据构成词条的首个汉字编码直接找到,索引构建简单、查找效率较高,但现有的构建哈希法倒排索引及查找方式的哈希函数只能适用于中文索引及搜索,搜索范围小、且哈希冲突的概率较高,针对首字计算哈希值进行查询,需要多次查询才能获取所需信息,查询时间较长,从而使得构建的搜索引擎倒排索引可靠性较差,查询效率较低。
发明内容
有鉴于此,本发明的主要目的在于提出一种建立倒排索引的方法,扩大索引及搜索范围、降低哈希冲突的概率、提高查询效率。
本发明的另一目的在于提出一种建立倒排索引的装置,扩大索引及搜索范围、降低哈希冲突的概率、提高查询效率。
为达到上述目的,本发明提供了一种建立倒排索引的方法,该方法包括:
A、提取待建立倒排索引的文档的域名信息以及该域名包含的词条对应的数据信息;
B、获取域名对应的汉字编码或ASC码,根据获取的GBK码或ASC码以及预先设定的中英文哈希函数计算域名哈希值;
C、查询哈希域表中是否存储有该域名哈希值,如果未存储有,执行步骤D,否则,执行步骤E;
D、将获取的该域名哈希值存储在哈希域表中,执行步骤E;
E、判断数据信息表中是否存储有提取的词条对应的数据信息,如果没有,将提取的词条对应的数据信息存储在数据信息表中。
所述预先设定的哈希函数为:
Hash(x)=H0;x=0 (1)
Hash(x)=(wordGBK[x][0]*k1+wordGBK[x][1]*k1+x≥1 (2)
Hash(x-1)*k2)∧(Hash(x-1)<<k3)∧(Hash(x-1)>>k4);
Hash(x)=(wordASC[x]*k1+Hash(x-1)*k2)∧(Hash(x-1)<<k3);x≥1(3)
∧(Hash(x-1)>>k4)
式中,∧为位“异或”运算符,<<为位“左移”运算符,>>为位“右移”运算符,x表示进行哈希运算的字符在字符串中的位置,字符串的长度为X(0≤x≤X);
如果字符串对应的第x个位置为中文,则使用公式(2);
如果字符串对应的第x个位置为英文,则使用公式(3);
wordGBK[x][0]为字符串中第x个中文字汉字编码中的GBK码的高位;
wordGBK[x][1]为字符串中第x个中文字的GBK码的低位;
wordASC[x]为字符串中第x个英文字母的ASC码;
H0为设置的字符串的初始哈希值;
k1为GBK码或ASC码系数,k2为第x-1个字符哈希值系数,k3、k4为移位运算符系数。
所述H0=166777619;k1=1777;k2=311;k3=4;k4=28。
倒排索引包括非指定域结构、和/或,指定域结构,域结构包括用于按照预先设定的哈希函数对域信息中包含的域名进行哈希计算、存储计算得到的域名哈希值的哈希域表,以及用于存放域名对应的数据或者对应数据的索引的数据信息表。
所述域结构为非指定域结构,所述数据信息表包括用于存储词条哈希值的词条哈希表,以及用于存储包含词条信息的域名以及该词条对应的数据信息的词条属性表。
所述步骤B之前进一步包括:
利用预先设置的哈希函数计算词条的哈希值,根据计算获取的词条哈希值查找词条哈希表,如果词条哈希表中未存在该词条哈希值,将计算获取的词条哈希值存储至词条哈希表中,将该词条对应的域名以及该词条对应的数据信息存储至词条属性表中,然后执行步骤B,否则,直接执行步骤B。
所述步骤A进一步包括:判断提取的域名或词条是否需要进行分词处理,如果需要,使用预先设置的中文分词程序进行分词。
进一步包括:如果词条哈希表中存储的词条哈希值与输入的词条哈希值相同,则判断存储的词条哈希值对应的词条是否与输入的词条哈希值对应的词条相同,如果不相同,则将输入的词条哈希值加一后再判断词条哈希表中是否存在相同的哈希值,如果不存在,则存储输入的加一后的词条哈希值并修改原存储的词条哈希值。
所述步骤E后进一步包括:
F11、利用预先设置的哈希函数计算用户输入的搜索关键词的哈希值;
F12、查找词条哈希表中是否有与该搜索关键词的哈希值匹配的哈希值,如果没有,执行步骤F13,如果有,执行步骤F14;
F13、将该搜索关键词的哈希值加1,判断将该搜索关键词的哈希值加1的次数是否超过预先设定的次数,如果否,返回执行步骤F12,如果是,结束流程;
F14、将词条属性表中该搜索关键词对应的数据信息返回给用户。
所述步骤F11进一步包括:
判断用户输入的搜索关键词是否需要进行分词处理,如果需要,使用预先设置的中文分词程序进行分词,获取分词处理的搜索关键词对应的GBK码或ASC码,根据获取的GBK码或ASC码以及预先设置的哈希函数计算哈希值。
所述域结构为指定域结构,所述数据信息表包括用于存储词条哈希值的词条哈希表,以及用于存储域名下的所有词条对应的数据信息的哈希表的词条属性表。
所述步骤E包括:
利用预先设置的哈希函数计算域名包含的词条的哈希值,根据计算获取的词条哈希值查找词条哈希表,如果词条哈希表中未存在该词条哈希值,将该词条对应的数据信息存储至词条属性表中,将该词条哈希值存储至词条哈希表中,否则,结束流程。
所述词条属性表进一步用于存储词条所属文档标识、以及词条出现的频率信息。
所述步骤E后进一步包括:
F21、利用预先设置的哈希函数计算用户输入的搜索关键词的哈希值;
F22、查找哈希域表中是否存在该搜索关键词的哈希值,如果不存在,执行步骤F23,如果存在,执行步骤F24;
F23、将该搜索关键词的哈希值加1,判断将该搜索关键词的哈希值加1的次数是否超过预先设定的次数,如果否,返回执行步骤F22,如果是,执行步骤F27;
F24、查找词条哈希表中是否存在该搜索关键词的哈希值,如果不存在,执行步骤F25,如果存在,执行步骤F26;
F25、将该搜索关键词的哈希值加1,判断将该搜索关键词的哈希值加1的次数是否超过预先设定的次数,如果否,返回执行步骤F24,如果是,执行步骤F27;
步骤F26,将词条属性表中该搜索关键词对应的数据信息返回给用户;
步骤F27,返回搜索该搜索关键词失败信息。
所述方法进一步包括:
根据用户输入的需要删除的域名,计算域名的哈希值,从指定域结构的哈希域表中获取与该域名的哈希值相同的哈希值;
返回该相同哈希值对应的所有词条;
删除所有词条对应的数据信息;
从非指定域结构的哈希词条表中查找所述返回的所有词条,从词条属性表中将所述返回的所有词条对应的域名删除。
所述方法进一步包括:
根据用户输入的需要删除的词条,获取词条对应的哈希值,从非指定域结构的哈希词条表中获取匹配的哈希值;
返回该词条对应的所有域名;
删除该词条对应的所有域名中的数据信息;
从指定域结构的哈希域表中查找所述返回的所有域名,从词条属性表中将所述返回的所有域名对应的词条删除。
一种倒排索引装置,该倒排索引系统包括:域名及数据信息获取单元、域名编码单元、哈希值计算单元、哈希域表单元以及数据信息表单元,其中,
域名及数据信息获取单元,用于提取待建立倒排索引的文档的域名信息以及该域名包含的词条对应的数据信息,将域名输出至域名编码单元,将数据信息输出至数据信息表单元;
域名编码单元,用于存储中文字符对应的汉字编码以及英文字符对应的ASC码,根据接收的域名,查询并获取该域名对应的汉字编码或ASC码,输出至哈希值计算单元;
哈希值计算单元,用于存储中英文哈希函数,根据域名编码单元输出的汉字编码或ASC码、以及存储的哈希函数,计算哈希值,输出至哈希域表单元;
哈希域表单元,用于接收哈希值计算单元输出的哈希值,更新存储的哈希值;
数据信息表单元,用于接收域名及数据信息获取单元输出的数据信息,更新存储的数据信息。
所述哈希值计算单元存储的哈希函数为:
Hash(x)=166777619;x=0
Hash(x)=(wordGBK[x][0]*1777+wordGBK[x][1]*1777+x≥1 (5)
Hash(x-1)*311)∧(Hash(x-1)<<4)∧(Hash(x-1)>>28);
Hash(x)=(wordASC[x]*1777+Hash(x-1)*311)∧(Hash(x-1)<<4);x≥1(6)
∧(Hash(x-1)>>28)
式中,∧为位“异或”运算符,<<为位“左移”运算符,>>为位“右移”运算符,x表示进行哈希运算的字符在字符串中的位置,字符串的长度为X(0≤x≤X);
如果字符串对应的第x个位置为中文,则使用公式(5);
如果字符串对应的第x个位置为英文,则使用公式(6);
wordGBK[x][0]为字符串中第x个中文字汉字编码中的GBK码的高位;
wordGBK[x][1]为字符串中第x个中文字的GBK码的低位;
wordASC[x]为字符串中第x个英文字母的ASC码;
Hash(x)=166777619为设置的字符串的初始哈希值。
由上述的技术方案可见,本发明提供的一种建立倒排索引的方法及装置,A、提取待建立倒排索引的文档的域名信息以及该域名包含的词条对应的数据信息;B、获取域名对应的汉字编码或ASC码,根据获取的GBK码或ASC码以及预先设定的中英文哈希函数计算域名哈希值;C、查询哈希域表中是否存储有该域名哈希值,如果未存储有,执行步骤D,否则,执行步骤E;D、将获取的该域名哈希值存储在哈希域表中,执行步骤E;E、判断数据信息表中是否存储有提取的词条对应的数据信息,如果没有,将提取的词条对应的数据信息存储在数据信息表中。这样,中英文哈希函数可以适用于计算中英文的哈希值,扩大了索引及搜索范围;以中英文哈希函数按照词条包含的字符串对应的编码进行哈希计算,哈希冲突的概率小、匹配的精确度较高,从而减少了查询所需的时间,提高了查询时的搜索效率,从而提高搜索引擎的整体性能。
附图说明
图1为本发明倒排索引结构示意图。
图2为本发明实施例的非指定域结构示意图。
图3为本发明指定域名结构示意图。
图4为本发明实施例建立倒排索引的方法流程示意图。
图5为本发明实施例在非指定域结构中建立倒排索引的方法流程示意图。
图6为本发明实施例在指定域结构中建立倒排索引的方法流程示意图。
图7为本发明实施例在非指定域结构中进行搜索的流程示意图。
图8为本发明实施例在指定域结构中进行搜索的流程示意图。
图9为本发明实施例删除域名的流程示意图。
图10为本发明实施例删除词条的流程示意图。
图11为本发明实施例在非指定域结构中合并数据的流程示意图。
图12为本发明实施例在指定域结构中合并数据的流程示意图。
图13为本发明实施例倒排索引装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
现有以哈希法构建的倒排索引,涉及的哈希函数只能适用于中文索引、且数组索引值根据词条首字的汉字编码计算哈希值确定,使得哈希冲突较多,哈希值分布不均匀,从而使得构建的搜索引擎倒排索引可靠性较差,影响查询的准确性。
本发明实施例中,考虑一个中文字的汉字编码,例如,汉字内码扩展规范(GBK,Chinese Internal Code Specification)码或GB2312码是唯一的,一个英文字母的ASC码也是唯一的,如果以词条包含的所有中文字的汉字编码和英文字母的ASC码计算哈希值并进行累加,则当用户输入搜索关键词时,索引通过哈希函数计算搜索关键词累加的哈希值,而不是计算搜索关键词首字的哈希值,匹配的精确度较高,从而减少查询所需的时间,提高查询时的搜索效率;同时,可以针对中英文进行查询,扩大了查询范围,方便了用户获取所需的信息。
实际应用中,由于将词条包含的所有中文字的汉字编码和英文字母的ASC码计算哈希值并进行累加可能使不同词条计算得到的哈希值出现哈希冲突,本发明进一步考虑将词条中包含的每个中文字的汉字编码以及每个英文字母的ASC码分别乘以一个较大的质数,这样,就可以保障通过词条得到的哈希值的唯一性;同时,通过将哈希函数的初始化哈希值初始化为一个较大的质数、以及通过对哈希值进行移位运算来保证词条对应的哈希值的均匀性。
基于上述分析,本发明提出的适合中英文的哈希函数参见式(1)至式(4),该哈希函数用于对一个字符串计算哈希值,所述的字符串包括中文文字、和/或,英文字母。
Hash(x)=H0;x=0 (1)
Hash(x)=(wordGBK[x][0]*k1+wordGBK[x][1]*k1+x≥1 (2)
Hash(x-1)*k2)∧(Hash(x-1)<<k3)∧(Hash(x-1)>>k4);
Hash(x)=(wordASC[x]*k1+Hash(x-1)*k2)∧(Hash(x-1)<<k3);x≥1 (3)
∧(Hash(x-1)>>k4)
式中,∧为位“异或”运算符,<<为位“左移”运算符,>>为位“右移”运算符,x表示进行哈希运算的字符在字符串中的位置,字符串的长度为X(0≤x≤X),一个中文汉字为一个长度单位,一个英文字母也为一个长度单位。
如果字符串对应的第x个位置为中文,则使用公式(2);
如果字符串对应的第x个位置为英文,则使用公式(3)。
wordGBK[x][0]为字符串中第x个中文字的GBK码的高位;
wordGBK[x][1]为字符串中第x个中文字的GBK码的低位;
wordASC[x]为字符串中第x个英文字母的ASC码;
H0为设置的字符串的初始哈希值;
k1为GBK码或ASC码系数,k2为第x-1个字符哈希值系数,k3、k4为移位运算符系数。
当然,实际应用中,也可以用中文字的GB2312码代替GBK码,较佳地,由于GBK码包含的中文字字数比GB2312码包含的中文字字数要多,因而,本发明实施例哈希函数中使用中文字的GBK码。
较佳地,
H0为大质数,例如,H0=166777619,或其他大质数;
k1为较大质数,例如,k1=1777,或其他较大质数;
k2为质数,例如,k2=311,或其他质数;
k3=4、k4=28,或其他整数。
由式(4)可见,词条对应的字符串哈希值等于字符串中各字符的哈希值之和,经测试,该哈希函数计算得到的哈希值中,平均15万个词条出现一次冲突,因而,本发明设计的哈希函数是比较高效的;而且,由于本发明设计的哈希函数主要是位、加法、乘法运算,相对现有哈希函数中的除法等运算方式更快,因而计算速度比较快。
以下基于本发明提出的哈希函数,对本发明建立倒排索引的方法及系统从内存结构和建立流程上进行描述。
倒排索引是搜索引擎中很重要的一个组成部分,搜索引擎就是通过为多个文件建立的倒排索引来反向查询搜索关键词所在的文件和文件中的位置,并将搜索结果进行整理后展现给用户。
实际应用中,一个或多个物理文件构成一个文档,每个文档包含多个属性,每个属性称为一个域(field)。例如,由多篇文章(物理文件)构成的一本书,包括书名属性、出版日期属性以及作者属性等,也就是说,一本书的域名包括书名、出版日期、作者等,并将域名对应的数据进行存储,则构成本发明实施例的倒排索引,当用户输入搜索关键词时,通过搜索关键词匹配域,然后将匹配的域对应的数据信息显示给用户。
所应说明的是,在本发明提出哈希函数算法后,倒排索引结构以及根据哈希函数建立倒排索引,与现有技术相类似,具体可参见相关技术文献,下面的描述中,对于相同的部分不再赘述。
图1为本发明倒排索引结构示意图,参见图1,该倒排索引用来存放所有域及域对应的数据信息,包括哈希域(HashField)表以及数据信息(data)表,其中,
HashField表用于存储按照域信息中包含的域名以及预先设定的哈希函数计算得到的域名哈希值;
data表用于存放域名对应的数据或者对应数据的索引。
每个data与相应的HashField对应。
本实施例中,域信息包括域名,同时,可以根据实际需要进行扩展,例如,还包括:域名对应数据的条数、是否分词、是否存储等内容。
哈希值通过本发明提出的哈希函数根据域名计算得到。
举例来说,HashField表包括域1(field 1)~域n,域1的域名为书名,则域1存储有“书名”的哈希值,相应data表中的data1存储有多个文档的书名数据或书名数据索引,例如,红楼梦、水浒、三国演义;域2的域名为出版日期,则域2存储有“出版日期”的哈希值,相应data表中的data 2存储有多个文档的出版日期数据或出版日期数据索引,例如,2000.08.08、2008.09.01、2009.01.01;......,以此类推,域n的域名为作者,则域n存储有“作者”的哈希值,相应data表中的data n存储有多个文档的作者数据或作者数据索引,例如,曹雪芹、施耐庵、罗贯中。
上述示例中,如果域名对应的数据信息较多,则data表包括数据索引,例如,对于data1存储的红楼梦,如果还有有关红楼梦的介绍信息,则可以将该介绍信息存储在其它存储区中,将data1存储的红楼梦作为指针,指向介绍信息存储的存储区位置。
针对用户进行查询的方式的不同,本发明实施例中,倒排索引结构可以分为非指定域结构和指定域结构。非指定域结构用于查询所有域中包含所查搜索关键词的数据信息,指定域结构用于对指定域的搜索关键词进行查询,从指定域中获取搜索关键词的数据信息。
图2为本发明实施例的非指定域结构示意图,参见图2,该非指定域结构包括:词条哈希表、词条属性表以及HashField表,词条哈希表和词条属性表组成data表,HashField表与图1的HashField表相同,其中,
词条(word)哈希表,用于存储词条哈希值;
词条属性(atts)表,用于存储包含词条信息的域名以及该词条对应的数据信息。
一个域名包含多个词条,例如,对于“书名”域名,红楼梦、水浒、三国演义为域名包含的词条。同前所述,哈希表中的哈希值是通过本发明设计的哈希函数计算得到的。
实际应用中,如果词条哈希表中存储的词条哈希值与输入的词条哈希值相同,则可以进一步判断存储的词条哈希值对应的词条是否与输入的词条哈希值对应的词条相同,如果不相同,则将输入的词条哈希值加一后再判断是否存在相同的哈希值,如果不存在,则存储输入的加一后的词条哈希值并修改原存储的词条哈希值以避免哈希冲突。
图3为本发明指定域名结构示意图,参见图3,该指定域名结构包括:HashField表、词条属性表以及词条哈希表,其中,HashIndex表与图1的HashField表相同,词条属性表用来存放该域名下的所有词条对应的数据信息的哈希表,词条哈希表与图2的词条哈希表相同。其中哈希值通过本发明设计的哈希函数计算得到。
上面对本发明实施例倒排索引在内存中的结构进行了说明,下面对本发明实施例倒排索引在磁盘上的结构进行描述。
本实施倒排索引在磁盘上的结构包括域文件、域数据文件、倒排索引文件以及倒排索引属性文件,其中,
域文件,用于存放文档对象包含的域和对应的属性信息;
域数据文件,用于存放文档域的对应数据或者数据的索引;
索引文件,用于存放词条内容及其相关属性索引信息;
索引属性文件,用于存放词条属性信息。
图4为本发明实施例建立倒排索引的方法流程示意图,参见图4,该流程包括:
步骤401,提取待建立倒排索引的文档的域名(属性)信息以及该域名包含的词条对应的数据信息;
本步骤中,该文档对象文件包含多个域名,例如,书名域、出版日期域以及作者域。域名可以是中文,也可以是英文,还可以是中英文混合。
步骤402,获取域名对应的GBK码或ASC码,根据获取的GBK码或ASC码以及预先设定的哈希函数计算域名哈希值;
本步骤中,获取域名对应的GBK码或ASC码可以通过查询GBK码表或ASC码表得到。
预先设定的哈希函数为:
Hash(x)=166777619;x=0
Hash(x)=(wordGBK[x][0]*1777+wordGBK[x][1]*1777+x≥1
Hash(x-1)*311)∧(Hash(x-1)<<4)∧(Hash(x-1)>>28);
Hash(x)=(wordASC[x]*1777+Hash(x-1)*311)∧(Hash(x-1)<<4);x≥1
∧(Hash(x-1)>>28)
步骤403,查询哈希域表中是否存储有该域名哈希值,如果未存储有,执行步骤404,否则,执行步骤405;
步骤404,将获取的该域名哈希值存储在哈希域表中,执行步骤406;
步骤405,判断数据信息表中是否存储有提取的词条对应的数据信息,如果有,结束本流程,否则,执行步骤406;
步骤406,将提取的词条对应的数据信息存储在数据信息表中。
本步骤中,存储在数据信息表中的词条对应的数据信息包括:词条对应的数据或者词条对应的数据索引。
图5为本发明实施例在非指定域结构中建立倒排索引的方法流程示意图。参见图5,该流程包括:
步骤501,从待建立倒排索引的文档中顺序获取文档域名包含的词条;
本步骤中,从文档中顺序获取文档域名,例如,书名域、出版日期域、摘要域以及作者域,并获取每个域名包含的词条,例如,书名域包含的词条为红楼梦;作者域包含的词条为曹雪芹;出版日期域包含的词条为2005.05.06。
实际应用中,根据建立倒排索引的实际需要,还可以进一步判断该词条是否需要进行分词处理,如果需要,使用预先设置的中文分词程序进行分词,如果不需要,则对词条不作处理。例如,对于出版日期域不需要进行分词处理,而对于书名域则需要进行分词处理。中文分词程序属于现有技术,可从目前使用的分词程序选取较优秀的中文分词程序进行判断并确定是否需要对词条分词。有关中文分词程序的描述,可参见相关技术文献,在此不再赘述。
步骤502,利用预先设置的哈希函数计算词条的哈希值,根据计算获取的词条哈希值查找词条哈希表,如果词条哈希表中未存在该词条哈希值,执行步骤503,否则,执行步骤504;
本步骤中,预先设置的哈希函数为上述式(1)~式(4)。
如前所述,对于进行分词处理的词条,将计算分词后的词条中各分词词条的哈希值,例如,对于词条我爱中国,经过分词处理为为“我爱”和“中国”两个分词词条,则根据哈希函数分别计算两个分词词条哈希值。
步骤503,将计算获取的词条哈希值存储至词条哈希表中,将该词条对应的域名以及该词条对应的数据信息存储至词条属性表中;
本步骤中,因为一个词条可能会包含于很多域名中,例如,词条红楼梦可能在书名域中出现,也可能在摘要域中出现,这里使用哈希表存储。
实际应用中,考虑到对词条属性表的扩展,词条属性表可以进一步存储该词条所属文档标识等属性信息、以及词条出现的频率等信息。
步骤504,利用预先设置的哈希函数计算域名的哈希值,查找哈希域表中是否存储有该域名哈希值,如果未存储有,则将该域名哈希值存储至该词条对应的哈希域表中,如果存储有,结束流程。
至此,在非指定域结构中建立倒排索引的流程结束。
实际应用中,如前所述,建立的倒排索引中,可能存在哈希冲突,针对该非指定域结构,本发明实施例中,哈希词条表采用再哈希的方式,也就是说,如果发生哈希冲突,将当前计算得到的哈希值加1组成一个新的哈希值后再进行重试,直到找到无冲突的哈希值为止,经实验验证,本发明实施例的解决哈希词条表哈希冲突的再哈希的次数最多为3次。而对于哈希属性表,采用链表的方式来处理哈希冲突,关于采用链表的方式来处理哈希冲突的技术,属于现有技术,具体可参见相关技术文献,在此不再赘述。
图6为本发明实施例在指定域结构中建立倒排索引的方法流程示意图。参见图6,该流程包括:
步骤601,从待建立倒排索引的文档中顺序获取文档域名;
本步骤中,从文档中顺序获取文档域名,判断域名是否需要进行分词处理,如果需要,使用预先设置的中文分词程序进行分词,如果不需要,则对域名不作处理。
步骤602,利用预先设置的哈希函数计算域名的哈希值,根据计算获取的域名哈希值查找哈希域表,如果哈希域表中未存在该域名哈希值,执行步骤603,否则,执行步骤604;
步骤603,将该域名哈希值存储至哈希域表中;
步骤604,利用预先设置的哈希函数计算域名包含的词条的哈希值,根据计算获取的词条哈希值查找词条哈希表,如果词条哈希表中未存在该词条哈希值,执行步骤605,否则,结束该流程;
步骤605,将该词条对应的数据信息存储至词条属性表中,将该词条哈希值存储至词条哈希表中。
实际应用中,考虑到对词条属性表的扩展,词条属性表可以进一步存储该词条所属文档标识等属性信息、以及词条出现的频率等信息。
本发明实施例中,可以使用java中的Hashmap类,利用本发明设计的哈希函数重写hashcode()方法和equals()方法来复用Hashmap类,以实现高效的哈希查找。关于利用哈希函数重写hashcode()方法和equals()方法来复用Hashmap类的技术,属于现有技术,具体可参见相关技术文献,在此不再赘述。
对于可能存在的哈希冲突,本发明实施例中,对于指定域结构包括两种哈希表,都采用再哈希的方式来处理哈希冲突,也就是说,如果发生哈希冲突,将当前计算得到的哈希值加1组成一个新的哈希值后再进行重试,直到找到无冲突的哈希值为止,经实验验证,解决哈希冲突的再哈希的次数最多为3次。
在建立本发明实施例的倒排索引后,就可以利用该建立的倒排索引进行相关搜索,相应地,根据倒排索引在内存中的结构不同而分为两种搜索方案,下面进行说明。
图7为本发明实施例在非指定域结构中进行搜索的流程示意图。参见图7,该流程包括:
步骤701,利用预先设置的哈希函数计算用户输入的搜索关键词的哈希值;
本步骤中,用户可以选择在非指定域结构中进行搜索还是在指定域结构中进行搜索。
用户输入搜索关键词,搜索引擎判断是否需要进行分词处理,如果需要,使用预先设置的中文分词程序进行分词,如果不需要,则对搜索关键词不作处理。获取分词处理的搜索关键词对应的GBK码或ASC码,根据获取的GBK码或ASC码以及预先设置的哈希函数计算哈希值。
步骤702,查找词条哈希表中是否有与该搜索关键词的哈希值匹配的哈希值,如果没有,执行步骤703,如果有,执行步骤704;
步骤703,将该搜索关键词的哈希值加1,判断将该搜索关键词的哈希值加1的次数是否超过预先设定的次数,如果否,返回执行步骤702,如果是,执行步骤705;
本步骤中,预先设定的次数为三次,当然,也可以根据实际需要进行设置,例如,设置为两次或四次。
步骤704,将词条属性表中该搜索关键词对应的数据信息返回给用户;
步骤705,搜索该搜索关键词失败。
图8为本发明实施例在指定域结构中进行搜索的流程示意图。参见图8,该流程包括:
步骤801,利用预先设置的哈希函数计算用户输入的搜索关键词的哈希值;
本步骤中,用户选择在指定域结构中进行搜索。
步骤802,查找哈希域表中是否存在该搜索关键词的哈希值,如果不存在,执行步骤803,如果存在,执行步骤804;
步骤803,将该搜索关键词的哈希值加1,判断将该搜索关键词的哈希值加1的次数是否超过预先设定的次数,如果否,返回执行步骤802,如果是,执行步骤807;
步骤804,查找词条哈希表中是否存在该搜索关键词的哈希值,如果不存在,执行步骤805,如果存在,执行步骤806;
步骤805,将该搜索关键词的哈希值加1,判断将该搜索关键词的哈希值加1的次数是否超过预先设定的次数,如果否,返回执行步骤804,如果是,执行步骤807;
步骤806,将词条属性表中该搜索关键词对应的数据信息返回给用户;
步骤807,搜索该搜索关键词失败。
实际应用中,还可以对倒排索引进行删除、更新及合并的操作。
本实施例中,对于删除操作,以删除域名和词条为例进行说明。
图9为本发明实施例删除域名的流程示意图。参见图9,该流程包括:
步骤901,根据获取的域名,计算域名的哈希值,从指定域结构的哈希域表中获取与该域名的哈希值相同的哈希值;
步骤902,返回该相同哈希值对应的所有词条;
步骤903,删除词条对应的数据信息;
步骤904,从非指定域结构的哈希词条表中查找所述返回的所有词条,从词条属性表中将所述返回的所有词条对应的域名删除。
图10为本发明实施例删除词条的流程示意图。参见图10,该流程包括:
步骤1001,根据获取的词条对应的哈希值从非指定域结构的哈希词条表中获取匹配的哈希值;
步骤1002,返回该词条对应的所有域名;
步骤1003,删除该词条对应的所有域名中的数据信息;
步骤1004,从指定域结构的哈希域表中查找所述返回的所有域名,从词条属性表中将所述返回的所有域名对应的词条删除。
对倒排索引进行更新的流程包括增加对象和修改对象的属性操作,通过查找得到要更新的项之后,对该对象进行对应的操作即可,由于操作比较简单,具体可参见相关技术文献,这里不再详细描述。
对索引进行合并,指的是内存结构中的合并,以要合并的两个数据内容为数据内容1和数据内容2,将数据内容2的合并到数据内容1上为例进行说明。
图11为本发明实施例在非指定域结构中合并数据的流程示意图。参见图11,该流程包括:
步骤1101,以数据内容2中包含的词条作为查询条件到数据内容1上进行查询;
步骤1102,如果查询到该数据内容2上的词条,则更新对应信息,如果未查询到,则增加一个该数据内容2上的词条项。
图12为本发明实施例在指定域结构中合并数据的流程示意图。参见图12,该流程包括:
步骤1201,以数据内容2中包含的域名作为查询条件到数据内容1上查询;
步骤1201,如果查询到该数据内容2上的域名,则更新对应信息,如果未查询到,则增加一个该数据内容2上的域项。
下面对本发明实施例倒排索引系统进行说明。
图13为本发明实施例倒排索引装置结构示意图,参见图13,该倒排索引装置包括:域名及数据信息获取单元、域名编码单元、哈希值计算单元、哈希域表单元以及数据信息表单元,其中,
域名及数据信息获取单元,用于提取待建立倒排索引的文档的域名信息以及该域名包含的词条对应的数据信息,将域名输出至域名编码单元,将数据信息输出至数据信息表单元;
域名编码单元,用于存储中文字符对应的汉字编码以及英文字符对应的ASC码,根据接收的域名,查询并获取该域名对应的汉字编码或ASC码,输出至哈希值计算单元;
汉字编码包括GBK码以及GB2312码。
哈希值计算单元,用于存储哈希函数,根据域名编码单元输出的汉字编码或ASC码、以及存储的哈希函数,计算哈希值,输出至哈希域表单元;
该哈希函数为:
Hash(x)=166777619;x=0
Hash(x)=(wordGBK[x][0]*1777+wordGBK[x][1]*1777+x≥1
Hash(x-1)*311)∧(Hash(x-1)<<4)∧(Hash(x-1)>>28);
Hash(x)=(wordASC[x]*1777+Hash(x-1)*311)∧(Hash(x-1)<<4);x≥1
∧(Hash(x-1)>>28)
输出至哈希域表单元的哈希值为域名中每个字符对应的哈希值的累加值。
哈希域表单元,用于接收哈希值计算单元输出的哈希值,更新存储的哈希值;
本实施例中,将接收的哈希值与预先存储的哈希值进行匹配,如果未能匹配上,将接收的哈希值存储在哈希域表单元中,如果匹配上,则不作处理。
数据信息表单元,用于接收域名及数据信息获取单元输出的数据信息,更新存储的数据信息。
本实施例中,将接收的数据信息与预先存储的数据信息进行匹配,如果未能匹配上,将接收的数据信息存储在数据信息表单元中,如果匹配上,则不作处理。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种建立倒排索引的方法,其特征在于,该方法包括:
A、提取待建立倒排索引的文档的域名信息以及该域名包含的词条对应的数据信息;
B、获取域名对应的汉字编码或ASC码,根据获取的GBK码或ASC码以及预先设定的中英文哈希函数计算域名哈希值;
C、查询哈希域表中是否存储有该域名哈希值,如果未存储有,执行步骤D,否则,执行步骤E;
D、将获取的该域名哈希值存储在哈希域表中,执行步骤E;
E、判断数据信息表中是否存储有提取的词条对应的数据信息,如果没有,将提取的词条对应的数据信息存储在数据信息表中。
2.如权利要求1所述的方法,其特征在于,所述预先设定的哈希函数为:
Hash(x)=H0;x=0 (1)
Hash(x)=(wordGBK[x][0]*k1+wordGBK[x][1]*k1+x≥1 (2)
Hash(x-1)*k2)∧(Hash(x-1)<<k3)∧(Hash(x-1)>>k4);
Hash(x)=(word4SC[x]*k1+Hash(x-1)*k2)∧(Hash(x-1)<<k3);x≥1 (3)
∧(Hash(x-1)>>k4)
式中,∧为位“异或”运算符,<<为位“左移”运算符,>>为位“右移”运算符,x表示进行哈希运算的字符在字符串中的位置,字符串的长度为X(0≤x≤X);
如果字符串对应的第x个位置为中文,则使用公式(2);
如果字符串对应的第x个位置为英文,则使用公式(3);
wordGBK[x][0]为字符串中第x个中文字汉字编码中的GBK码的高位;
wordGBK[x][1]为字符串中第x个中文字的GBK码的低位;
wordASC[x]为字符串中第x个英文字母的ASC码;
H0为设置的字符串的初始哈希值;
k1为GBK码或ASC码系数,k2为第x-1个字符哈希值系数,k3、k4为移位运算符系数。
3.如权利要求2所述的方法,其特征在于,所述H0=166777619;k1=1777;k2=311;k3=4;k4=28。
4.如权利要求3所述的方法,其特征在于,倒排索引包括非指定域结构、和/或,指定域结构,域结构包括用于按照预先设定的哈希函数对域信息中包含的域名进行哈希计算、存储计算得到的域名哈希值的哈希域表,以及用于存放域名对应的数据或者对应数据的索引的数据信息表。
5.如权利要求4所述的方法,其特征在于,所述域结构为非指定域结构,所述数据信息表包括用于存储词条哈希值的词条哈希表,以及用于存储包含词条信息的域名以及该词条对应的数据信息的词条属性表。
6.如权利要求5所述的方法,其特征在于,所述步骤B之前进一步包括:
利用预先设置的哈希函数计算词条的哈希值,根据计算获取的词条哈希值查找词条哈希表,如果词条哈希表中未存在该词条哈希值,将计算获取的词条哈希值存储至词条哈希表中,将该词条对应的域名以及该词条对应的数据信息存储至词条属性表中,然后执行步骤B,否则,直接执行步骤B。
7.如权利要求6所述的方法,其特征在于,所述步骤A进一步包括:判断提取的域名或词条是否需要进行分词处理,如果需要,使用预先设置的中文分词程序进行分词。
8.如权利要求6所述的方法,其特征在于,进一步包括:如果词条哈希表中存储的词条哈希值与输入的词条哈希值相同,则判断存储的词条哈希值对应的词条是否与输入的词条哈希值对应的词条相同,如果不相同,则将输入的词条哈希值加一后再判断词条哈希表中是否存在相同的哈希值,如果不存在,则存储输入的加一后的词条哈希值并修改原存储的词条哈希值。
9.如权利要求8所述的方法,其特征在于,所述步骤E后进一步包括:
F11、利用预先设置的哈希函数计算用户输入的搜索关键词的哈希值;
F12、查找词条哈希表中是否有与该搜索关键词的哈希值匹配的哈希值,如果没有,执行步骤F13,如果有,执行步骤F14;
F13、将该搜索关键词的哈希值加1,判断将该搜索关键词的哈希值加1的次数是否超过预先设定的次数,如果否,返回执行步骤F12,如果是,结束流程;
F14、将词条属性表中该搜索关键词对应的数据信息返回给用户。
10.如权利要求9所述的方法,其特征在于,所述步骤F11进一步包括:
判断用户输入的搜索关键词是否需要进行分词处理,如果需要,使用预先设置的中文分词程序进行分词,获取分词处理的搜索关键词对应的GBK码或ASC码,根据获取的GBK码或ASC码以及预先设置的哈希函数计算哈希值。
11.如权利要求4所述的方法,其特征在于,所述域结构为指定域结构,所述数据信息表包括用于存储词条哈希值的词条哈希表,以及用于存储域名下的所有词条对应的数据信息的哈希表的词条属性表。
12.如权利要求11所述的方法,其特征在于,所述步骤E包括:
利用预先设置的哈希函数计算域名包含的词条的哈希值,根据计算获取的词条哈希值查找词条哈希表,如果词条哈希表中未存在该词条哈希值,将该词条对应的数据信息存储至词条属性表中,将该词条哈希值存储至词条哈希表中,否则,结束流程。
13.如权利要求12所述的方法,其特征在于,所述词条属性表进一步用于存储词条所属文档标识、以及词条出现的频率信息。
14.如权利要求12所述的方法,其特征在于,所述步骤E后进一步包括:
F21、利用预先设置的哈希函数计算用户输入的搜索关键词的哈希值;
F22、查找哈希域表中是否存在该搜索关键词的哈希值,如果不存在,执行步骤F23,如果存在,执行步骤F24;
F23、将该搜索关键词的哈希值加1,判断将该搜索关键词的哈希值加1的次数是否超过预先设定的次数,如果否,返回执行步骤F22,如果是,执行步骤F27;
F24、查找词条哈希表中是否存在该搜索关键词的哈希值,如果不存在,执行步骤F25,如果存在,执行步骤F26;
F25、将该搜索关键词的哈希值加1,判断将该搜索关键词的哈希值加1的次数是否超过预先设定的次数,如果否,返回执行步骤F24,如果是,执行步骤F27;
步骤F26,将词条属性表中该搜索关键词对应的数据信息返回给用户;
步骤F27,返回搜索该搜索关键词失败信息。
15.如权利要求4所述的方法,其特征在于,所述方法进一步包括:
根据用户输入的需要删除的域名,计算域名的哈希值,从指定域结构的哈希域表中获取与该域名的哈希值相同的哈希值;
返回该相同哈希值对应的所有词条;
删除所有词条对应的数据信息;
从非指定域结构的哈希词条表中查找所述返回的所有词条,从词条属性表中将所述返回的所有词条对应的域名删除。
16.如权利要求4所述的方法,其特征在于,所述方法进一步包括:
根据用户输入的需要删除的词条,获取词条对应的哈希值,从非指定域结构的哈希词条表中获取匹配的哈希值;
返回该词条对应的所有域名;
删除该词条对应的所有域名中的数据信息;
从指定域结构的哈希域表中查找所述返回的所有域名,从词条属性表中将所述返回的所有域名对应的词条删除。
17.一种倒排索引装置,其特征在于,该倒排索引系统包括:域名及数据信息获取单元、域名编码单元、哈希值计算单元、哈希域表单元以及数据信息表单元,其中,
域名及数据信息获取单元,用于提取待建立倒排索引的文档的域名信息以及该域名包含的词条对应的数据信息,将域名输出至域名编码单元,将数据信息输出至数据信息表单元;
域名编码单元,用于存储中文字符对应的汉字编码以及英文字符对应的ASC码,根据接收的域名,查询并获取该域名对应的汉字编码或ASC码,输出至哈希值计算单元;
哈希值计算单元,用于存储中英文哈希函数,根据域名编码单元输出的汉字编码或ASC码、以及存储的哈希函数,计算哈希值,输出至哈希域表单元;
哈希域表单元,用于接收哈希值计算单元输出的哈希值,更新存储的哈希值;
数据信息表单元,用于接收域名及数据信息获取单元输出的数据信息,更新存储的数据信息。
18.如权利要求17所述的倒排索引装置,其特征在于,所述哈希值计算单元存储的哈希函数为:
Hash(x)=166777619;x=0
Hash(x)=(wordGBK[x][0]*1777+wordGBK[x][1]*1777+x≥1 (5)
Hash(x-1)*311)∧(Hash(x-1)<<4)∧(Hash(x-1)>>28);
Hash(x)=(wordASC[x]*1777+Hash(x-1)*311)∧(Hash(x-1)<<4);x≥1 (6)
∧(Hash(x-1)>>28)
式中,∧为位“异或”运算符,<<为位“左移”运算符,>>为位“右移”运算符,x表示进行哈希运算的字符在字符串中的位置,字符串的长度为x(0≤x≤X);
如果字符串对应的第x个位置为中文,则使用公式(5);
如果字符串对应的第x个位置为英文,则使用公式(6);
wordGBK[x][0]为字符串中第x个中文字汉字编码中的GBK码的高位;
wordGBK[x][1]为字符串中第x个中文字的GBK码的低位;
wordASC[x]为字符串中第x个英文字母的ASC码;
Hash(x)=166777619为设置的字符串的初始哈希值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102376738A CN102063446B (zh) | 2009-11-13 | 2009-11-13 | 一种建立倒排索引的方法及倒排索引装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102376738A CN102063446B (zh) | 2009-11-13 | 2009-11-13 | 一种建立倒排索引的方法及倒排索引装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102063446A true CN102063446A (zh) | 2011-05-18 |
CN102063446B CN102063446B (zh) | 2012-07-11 |
Family
ID=43998726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102376738A Active CN102063446B (zh) | 2009-11-13 | 2009-11-13 | 一种建立倒排索引的方法及倒排索引装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063446B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102637204A (zh) * | 2012-03-16 | 2012-08-15 | 浙江大学城市学院 | 一种基于互索引结构的文本查询方法 |
CN103810213A (zh) * | 2012-11-14 | 2014-05-21 | 腾讯科技(深圳)有限公司 | 一种搜索方法和系统 |
CN103853772A (zh) * | 2012-12-04 | 2014-06-11 | 北京拓尔思信息技术股份有限公司 | 一种高效的倒排索引结构及组织方法 |
CN104778247A (zh) * | 2015-04-13 | 2015-07-15 | 天脉聚源(北京)传媒科技有限公司 | 一种基于给定数据资源的信息检索方法及装置 |
CN105488197A (zh) * | 2015-12-07 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 垂直搜索中按域检索方法、新增文档处理方法和装置 |
CN105611000A (zh) * | 2016-03-31 | 2016-05-25 | 中国互联网络信息中心 | 一种域名服务器的dns域名快速检索方法 |
CN105956085A (zh) * | 2016-04-29 | 2016-09-21 | 合网络技术(北京)有限公司 | 一种倒排索引的构建方法和装置、检索方法和装置 |
CN106126235A (zh) * | 2016-06-24 | 2016-11-16 | 中国科学院信息工程研究所 | 一种复用代码库构建方法、复用代码快速溯源方法及系统 |
CN106348119A (zh) * | 2016-09-20 | 2017-01-25 | 广州特种机电设备检测研究院 | 一种基于物联网的隔离型电梯运行安全监测系统和方法 |
CN106649427A (zh) * | 2016-08-08 | 2017-05-10 | 中国移动通信集团湖北有限公司 | 一种信息识别的方法及装置 |
CN107273519A (zh) * | 2017-06-22 | 2017-10-20 | 睿视智联科技(香港)有限公司 | 数据分析方法、装置、终端及存储介质 |
CN107784110A (zh) * | 2017-11-03 | 2018-03-09 | 北京锐安科技有限公司 | 一种索引建立方法及装置 |
CN108255859A (zh) * | 2016-12-29 | 2018-07-06 | 航天信息股份有限公司 | 一种用于为海量数字证书建立索引的方法及系统 |
CN110019647A (zh) * | 2017-10-25 | 2019-07-16 | 华为技术有限公司 | 一种关键词搜索方法、装置和搜索引擎 |
CN111309846A (zh) * | 2018-12-12 | 2020-06-19 | 中国移动通信集团四川有限公司 | 索引处理方法、装置、设备及介质 |
CN111368022A (zh) * | 2020-02-28 | 2020-07-03 | 山东汇贸电子口岸有限公司 | 一种使用反向索引实现书籍筛选的方法及工具 |
CN111611471A (zh) * | 2019-02-25 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 一种搜索方法、装置及电子设备 |
CN111639099A (zh) * | 2020-06-09 | 2020-09-08 | 武汉虹旭信息技术有限责任公司 | 全文索引方法及系统 |
CN111767364A (zh) * | 2019-03-26 | 2020-10-13 | 钉钉控股(开曼)有限公司 | 数据处理方法、装置和设备 |
CN113297138A (zh) * | 2019-06-11 | 2021-08-24 | 武汉深之度科技有限公司 | 索引建立方法、数据查询方法及计算设备 |
CN117453986A (zh) * | 2023-12-19 | 2024-01-26 | 荣耀终端有限公司 | 一种搜索方法、后台服务器及搜索系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1228935C (zh) * | 2001-05-31 | 2005-11-23 | 中兴通讯股份有限公司 | 一种查找国际移动识别号和电子序列号的方法 |
CN101158955A (zh) * | 2007-11-15 | 2008-04-09 | 电子科技大学 | 一种中文词库的构造方法 |
-
2009
- 2009-11-13 CN CN2009102376738A patent/CN102063446B/zh active Active
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102637204B (zh) * | 2012-03-16 | 2014-04-16 | 浙江大学城市学院 | 一种基于互索引结构的文本查询方法 |
CN102637204A (zh) * | 2012-03-16 | 2012-08-15 | 浙江大学城市学院 | 一种基于互索引结构的文本查询方法 |
CN103810213A (zh) * | 2012-11-14 | 2014-05-21 | 腾讯科技(深圳)有限公司 | 一种搜索方法和系统 |
CN103810213B (zh) * | 2012-11-14 | 2017-09-12 | 腾讯科技(深圳)有限公司 | 一种搜索方法和系统 |
CN103853772A (zh) * | 2012-12-04 | 2014-06-11 | 北京拓尔思信息技术股份有限公司 | 一种高效的倒排索引结构及组织方法 |
CN104778247B (zh) * | 2015-04-13 | 2018-01-05 | 天脉聚源(北京)传媒科技有限公司 | 一种基于给定数据资源的信息检索方法及装置 |
CN104778247A (zh) * | 2015-04-13 | 2015-07-15 | 天脉聚源(北京)传媒科技有限公司 | 一种基于给定数据资源的信息检索方法及装置 |
CN105488197A (zh) * | 2015-12-07 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 垂直搜索中按域检索方法、新增文档处理方法和装置 |
CN105611000A (zh) * | 2016-03-31 | 2016-05-25 | 中国互联网络信息中心 | 一种域名服务器的dns域名快速检索方法 |
CN105611000B (zh) * | 2016-03-31 | 2019-04-26 | 中国互联网络信息中心 | 一种域名服务器的dns域名快速检索方法 |
CN105956085A (zh) * | 2016-04-29 | 2016-09-21 | 合网络技术(北京)有限公司 | 一种倒排索引的构建方法和装置、检索方法和装置 |
CN105956085B (zh) * | 2016-04-29 | 2019-08-27 | 优酷网络技术(北京)有限公司 | 一种倒排索引的构建方法和装置、检索方法和装置 |
CN106126235A (zh) * | 2016-06-24 | 2016-11-16 | 中国科学院信息工程研究所 | 一种复用代码库构建方法、复用代码快速溯源方法及系统 |
CN106126235B (zh) * | 2016-06-24 | 2019-05-07 | 中国科学院信息工程研究所 | 一种复用代码库构建方法、复用代码快速溯源方法及系统 |
CN106649427B (zh) * | 2016-08-08 | 2020-07-03 | 中国移动通信集团湖北有限公司 | 一种信息识别的方法及装置 |
CN106649427A (zh) * | 2016-08-08 | 2017-05-10 | 中国移动通信集团湖北有限公司 | 一种信息识别的方法及装置 |
CN106348119A (zh) * | 2016-09-20 | 2017-01-25 | 广州特种机电设备检测研究院 | 一种基于物联网的隔离型电梯运行安全监测系统和方法 |
CN108255859A (zh) * | 2016-12-29 | 2018-07-06 | 航天信息股份有限公司 | 一种用于为海量数字证书建立索引的方法及系统 |
CN107273519A (zh) * | 2017-06-22 | 2017-10-20 | 睿视智联科技(香港)有限公司 | 数据分析方法、装置、终端及存储介质 |
CN110019647A (zh) * | 2017-10-25 | 2019-07-16 | 华为技术有限公司 | 一种关键词搜索方法、装置和搜索引擎 |
CN110019647B (zh) * | 2017-10-25 | 2023-12-15 | 华为技术有限公司 | 一种关键词搜索方法、装置和搜索引擎 |
CN107784110A (zh) * | 2017-11-03 | 2018-03-09 | 北京锐安科技有限公司 | 一种索引建立方法及装置 |
CN107784110B (zh) * | 2017-11-03 | 2020-07-03 | 北京锐安科技有限公司 | 一种索引建立方法及装置 |
CN111309846B (zh) * | 2018-12-12 | 2023-09-05 | 中国移动通信集团四川有限公司 | 索引处理方法、装置、设备及介质 |
CN111309846A (zh) * | 2018-12-12 | 2020-06-19 | 中国移动通信集团四川有限公司 | 索引处理方法、装置、设备及介质 |
CN111611471A (zh) * | 2019-02-25 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 一种搜索方法、装置及电子设备 |
CN111611471B (zh) * | 2019-02-25 | 2023-12-26 | 阿里巴巴集团控股有限公司 | 一种搜索方法、装置及电子设备 |
CN111767364B (zh) * | 2019-03-26 | 2023-12-29 | 钉钉控股(开曼)有限公司 | 数据处理方法、装置和设备 |
CN111767364A (zh) * | 2019-03-26 | 2020-10-13 | 钉钉控股(开曼)有限公司 | 数据处理方法、装置和设备 |
CN113297138A (zh) * | 2019-06-11 | 2021-08-24 | 武汉深之度科技有限公司 | 索引建立方法、数据查询方法及计算设备 |
CN113297138B (zh) * | 2019-06-11 | 2024-06-14 | 武汉深之度科技有限公司 | 索引建立方法、数据查询方法及计算设备 |
CN111368022A (zh) * | 2020-02-28 | 2020-07-03 | 山东汇贸电子口岸有限公司 | 一种使用反向索引实现书籍筛选的方法及工具 |
CN111639099A (zh) * | 2020-06-09 | 2020-09-08 | 武汉虹旭信息技术有限责任公司 | 全文索引方法及系统 |
CN117453986A (zh) * | 2023-12-19 | 2024-01-26 | 荣耀终端有限公司 | 一种搜索方法、后台服务器及搜索系统 |
CN117453986B (zh) * | 2023-12-19 | 2024-05-24 | 荣耀终端有限公司 | 一种搜索方法、后台服务器及搜索系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102063446B (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102063446B (zh) | 一种建立倒排索引的方法及倒排索引装置 | |
JP5138046B2 (ja) | 検索システム、検索方法およびプログラム | |
TWI480746B (zh) | 使用經結構化之資料儲存器達到較快速全文檢索 | |
CN102142038B (zh) | 用于记号空间资料库的多级查询处理系统与方法 | |
Cafarella et al. | Web-scale extraction of structured data | |
CN105589894B (zh) | 文档索引建立方法和装置、文档检索方法和装置 | |
US8266150B1 (en) | Scalable document signature search engine | |
CN112083812B (zh) | 联想词确定方法、装置、存储介质和电子设备 | |
CN102915381B (zh) | 基于多维语义的可视化网络检索呈现系统及呈现控制方法 | |
Yang et al. | Mining frequent query patterns from XML queries | |
CN101526956A (zh) | 基于内容引用的网页搜索结果排序方法 | |
CN115391495B (zh) | 在中文语境中检索关键词的方法、装置及设备 | |
CN106547893A (zh) | 一种图片分类管理系统及图片分类管理方法 | |
CN115563313A (zh) | 基于知识图谱的文献书籍语义检索系统 | |
CN111400323A (zh) | 数据检索方法、系统、设备及存储介质 | |
CN105335481A (zh) | 一种大规模字符串文本的后缀索引构造方法及装置 | |
CN101310277B (zh) | 获得文本的表示的方法和系统 | |
CN105404677A (zh) | 一种基于树形结构的检索方法 | |
Chaudhuri et al. | Mining document collections to facilitate accurate approximate entity matching | |
Tsuruta et al. | c-trie++: A dynamic trie tailored for fast prefix searches | |
Ajoudanian et al. | Deep web content mining | |
Sohrabi et al. | Finding similar documents using frequent pattern mining methods | |
Xu et al. | Top-k string auto-completion with synonyms | |
Amin et al. | An efficient web-based wrapper and annotator for tabular data | |
Hsu et al. | UCIS-X: an updatable compact indexing scheme for efficient extensible markup language document updating and query evaluation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160311 Address after: West high tech Zone Fucheng Road in Chengdu city of Sichuan province 610000 399 No. 6 Building 1 unit 12 floor No. 3 Patentee after: MIGU MUSIC CO., LTD. Address before: 610041 No. 10 Peng Da Road, hi tech Zone, Sichuan, Chengdu Patentee before: China Mobile Communication Group Sichuan Co., Ltd. |