CN111309846B - 索引处理方法、装置、设备及介质 - Google Patents
索引处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111309846B CN111309846B CN201811516437.5A CN201811516437A CN111309846B CN 111309846 B CN111309846 B CN 111309846B CN 201811516437 A CN201811516437 A CN 201811516437A CN 111309846 B CN111309846 B CN 111309846B
- Authority
- CN
- China
- Prior art keywords
- index
- chain
- length
- keywords
- query
- 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.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了索引处理方法、装置、设备及介质。该方法包括:获取多个索引关键词,每个索引关键词分别对应有索引链;从多个索引关键词对应的索引链中查找目标索引链,目标索引链满足预定的长链查找规则;将目标索引链裁剪为至少两个索引链。如此,将长链索引剪枝为多链索引,为并行查询奠定了基础,进而为提高检索效率奠定了基础。
Description
技术领域
本发明涉及索引技术领域,尤其涉及一种索引处理方法、装置、设备及介质
背景技术
Lucene是一个高性能、易扩展的基于Java技术的全文信息检索工具包,它能非常方便地为各种应用程序加入全文索引和搜索功能。目前广泛适用于企业中的ElasticSearch和Solr都是基于Lucene的搜索引擎框架。
实际应用中,为了能够快速查找文档标识(doc id),Lucene采用了跳表(SkipList)的数据结构。这里,SkipList具有以下几个特征:Lucene按照doc id进行从小到大的倒叙排序;以固定的间隔跳跃,该间隔可以是根据实际情况指定的,如在建立SkipList的时候指定,如图1(a)所示,假设有100个doc,doc id为1-100,间隔为3,则可得到如图1(a)所示的数据结构,其中,Lucene,Solr以及Hadoop等关键词构成词典,与词典对应的即为倒叙表。
基于图1(a)所示的数据结构,若要寻找既包含有“Lucene”,又包含有“Solr”的文档,则需执行如下步骤:
取出包含字符串“Lucene”的文档链表;
取出包含字符串“Solr”的文档链表;
通过合并链表,找出既包含“Lucene”又包含“Solr”的文件,如参见图1(b),通过合并后的链表得到满足上述要求的文档,即得到doc id为3、10、35以及92的文档。
实际应用中,当文档链表很长,若对该文档链表进行查询,则导致响应时间太长,则会花费大量查询时间,降低了查询效率。
综上所述,亟需一种索引处理方法、装置、设备及介质,以解决上述问题。
发明内容
本发明实施例提供了索引处理方法、装置、设备及介质,能够将长索引链剪枝为多条索引链,进而为并行查询奠定了基础,同时,为提高检索效率奠定了基础。
第一方面,本发明实施例提供了一种索引处理方法,包括:
获取多个索引关键词,每个索引关键词分别对应有索引链;
从上述多个索引关键词对应的索引链中查找目标索引链,目标索引链满足预定的长链查找规则;
将目标索引链裁剪为至少两个索引链。
第二方面,本发明实施例提供了一种索引处理装置,包括:
索引关键词获取单元,用于获取多个索引关键词,每个索引关键词分别对应有索引链;
筛选单元,用于从所述多个索引关键词对应的索引链中查找目标索引链,所述目标索引链满足预定的长链查找规则;
剪枝单元,用于将所述目标索引链裁剪为至少两个索引链。
第三方面,本发明实施例提供了一种索引处理设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。
本发明实施例提供的索引处理方法、装置、设备及介质,对满足预定的长链查找规则的目标索引链裁剪为至少两个索引链,缩短了单个索引链的长度,进而可以缩短单索引链上的查询时间,为并行查询奠定了基础,进而为提高查询效率奠定了基础。
第五方面,本发明实施例提供了一种索引处理方法,该方法包括:
获取查询指令,该查询指令中携带索引关键词,索引关键词对应的索引链是按照上述第一方面的方法裁剪得到的;
基于上述索引关键词对应的各条索引链并行执行查询操作。
第六方面,本发明实施例提供一种索引处理装置,该装置包括:
查询命令获取单元,用于获取查询指令,该查询指令中携带索引关键词,索引关键词对应的索引链是按照第一方面提供的方法裁剪得到的;
查询操作执行单元,用于基于上述索引关键词对应的各条索引链并行执行查询操作。
第七方面,本发明实施例提供一种索引处理设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当该计算机程序指令被处理器执行时实现如第五方面所述的方法。
第八方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序指令,当该计算机程序指令被处理器执行时实现如第五方面所述的方法。
本发明实施例提供的索引处理方法、装置、设备及介质,对满足预定的长链查找规则的目标索引链裁剪为至少两个索引链,缩短了单个索引链的长度,进而可以缩短单索引链上的查询时间,在接收到查询指令后,可以在检索关键词对应的至少两个索引链上并行查询,提高了查询效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1(a)示出了一具体示例中倒叙索引的结构示意图;
图1(b)示出了一具体示例中查询流程示意图;
图1(c)示出了一具体单词组的Trie树结构示意图;
图2(a)示出了根据本发明一些实施例提供的索引处理方法的流程示意图;
图2(b)示出了本发明实施例提供的索引处理方法在一具体示例中的流程示意图;
图2(c)示出了根据本发明一些实施例提供的索引处理方法对目标Term进行剪枝处理前,以及处理后所得到的索引列表结构示意图;
图2(d)示出了一具体示例中Term索引结构示意图;
图3示出了本发明一些实施例提供的索引处理装置的组成结构示意图;
图4示出了本发明实施例提供的索引处理设备的硬件结构示意图;
图5示出了本发明另一些实施例提供的索引处理方法的流程示意图;
图6示出了本发明另一些实施例提供的索引处理装置的组成结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
实际应用中,Lucene中包含了四种基本数据类型,分别是:
Index:索引,由很多的文档(Document)组成;
Document:文档,由很多的字段(Field)组成,是Index和查询(Search)的最小单位;
Field:字段,由很多的索引关键词(Term)组成,包括字段名(FieldName)和字段值(Field Value);
Term:索引关键词,由很多的字节组成。一般将文本(Text)类型的Field Value分词之后的每个最小单元叫做Term,Term对应索引链(即文档链表、倒排索引)。
随着Term的增加会生成一颗Trie树,适合于统计,保存大量的字符串,使用公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。例如,图1(c)为一具体单词组,如inn,int,ate,age,adv,ant的Trie树结构示意图。
这样,若大量文档分词后建立倒排索引,由于倒排索引为单链结构,所以,若索引链很长,则查询该索引链的响应时间则会很长;而且,索引链的查询还是一个随时间线性增长的过程。特别是对于频繁写入的索引,在Lucene进行SkipList操作时,对两个超长索引链进行匹配,必然会花费大量的时间。而且,上述单链结构无法充分使用多线程技术,因此,也降低了空间使用率,降低了查询效率。
基于此,为解决现有技术的不足,本发明实施例提供了一种索引处理方法、装置、设备及介质,通过遍历Term生成的Trid树,筛选出长索引链(也即本实施例的目标索引链),并对长索引链进行剪枝处理,得到由多条短索引链链并行排列的多链结构,进而,为实现并发查询奠定了基础,为更快的命中目标文档奠定了基础。即使在索引增加、索引链较长的情况下,也能利用并发线程查询方式来达到快速检索的目的。
本发明实施例的具体实现方式可参见下述实施例。
图2(a)示出了根据本发明一些实施例提供的索引处理方法的流程示意图,如图2(a)所示,该方法包括:
步骤201-a:获取多个索引关键词,每个索引关键词分别对应有索引链。
本发明实施例不对获取多个索引关键词的具体实现方式进行限定。
若采用了Trie树结构,则通过遍历字典树(Trie树)获取多个索引关键词。若采用其他结构,也可以通过其他方式获取索引关键词。
步骤202-a:从上述多个索引关键词对应的索引链中查找目标索引链,目标索引链满足预定的长链查找规则。
步骤203-a:将上述目标索引链裁剪为至少两个索引链。
本发明实施例不对裁剪的具体实现方式进行限定,只要每个索引链均未倒排链,且每个索引链包含的索引节点(例如文档标识)不重复。可以分段截取,例如,目标索引链长度为100,从第70个索引节点将目标索引链裁剪为两个索引链;又或者,抽取索引节点组成至少两个索引链,例如,目标索引链长度为100,分别抽取其单数索引节点和双数索引节点构成两条索引链。
本发明实施例中,可选的,对索引关键词对应的索引链是否经过裁剪进行标记,例如,将未经裁剪的索引链的数据结构标记为List,将经过裁剪之后得到的多个索引链的数据结构标记为map。
本发明实施例提供的索引处理方法,对满足预定的长链查找规则的目标索引链裁剪为至少两个索引链,缩短了单个索引链的长度,进而可以缩短单索引链上的查询时间,为并行查询奠定了基础,进而为提高查询效率奠定了基础。
以遍历字典树获取多个索引关键词为例,本发明实施例中,既可以获取全部索引关键词,也可以获取部分索引关键词。若获取部分索引关键词,可以但不仅限于获取对应的索引链的数据结构标记为list的索引关键词。
在一具体实施例中,可以通过设置定时脚本,周期性触发索引处理方法;其中,触发周期可以根据实际需求设置为周,月等。也可以在满足设定的触发条件时触发索引处理方法,例如,索引关键词的查询响应时间达到第一时间阈值。其中,可以是单个索引关键词的查询响应时间达到第一时间阈值,也可以是预定数量的索引关键词的查询响应时间均达到第一时间阈值,还可以是多个索引关键词的查询响应时间时间的均值达到第一时间阈值。其中,第一时间阈值可以是人为设定的,例如经验值,也可以通过仿真确定,还可以通过其他方式确定。
在一具体示例中,可以采用如下方式来确定长链查找规则:根据获取的多个索引关键词对应的索引链的长度均值确定第一长度阈值,长链查找规则要求索引链长度达到第一长度阈值。具体地,统计获取的多个索引关键词对应的索引链的总长度,比如,统计Trie树中所有Term对应的索引链的索引长度之和,作为总长度;利用总长度和索引关键词数量确定长度均值。实际应用中,既可以将长度均值作为第一长度阈值,也可以对长度均值进行处理后作为第一长度阈值。例如,确定出剪切系数,进而基于总索引长度,索引树中叶子节点的总个数,以及该剪切系数,计算得到目标索引长度。这里,所述剪切系数为经验值。
相应地,步骤202-a中,具体是查找索引链长度达到第一长度阈值的索引链作为目标索引链,优选地,裁剪得到的每个索引链长度不超过第一长度阈值。
应当指出的是,上述第一长度阈值也可以通过其他方式确定,例如经验值。
举例来说,本实施例中,可以通过统计Trie树中所有Term对应的索引链的索引长度,得到总长度,进而利用该总索引长度确定出第一长度阈值,基于该第一长度阈值对Term对应的索引链进行筛选,得到索引长度长于该第一长度阈值的Term,并最后得到索引长度长于第一长度阈值的Term集合;进而对Term集合中每一Term的索引链进行剪枝处理,实现将长索引链剪枝成多条并行的短索引链,进而为快速查询奠定了基础。
在另一具体示例中,还可以通过如下方式来确定长链查找规则:根据获取到的多个索引关键词的查询响应时间的均值确定第二时间阈值,长链查找规则要求索引关键词的查询响应时间达到第二时间阈值。具体地,统计对获取的索引关键词的查询响应总时长,比如,统计对Trie树中所有Term对应的索引链进行查询的总响应时长;至少基于总响应时长和Term数量,得到查询响应时间均值,进而基于该查询响应时间均值确定第二时间阈值。实际应用中,还可以确定出剪切系数,进而基于总响应时长,Term的总个数,以及该剪切系数,计算得到第二时间阈值。这里,所述剪切系数为经验值。
本发明实施例中,第一时间阈值可以与第二时间阈值相同。
对应地,步骤202-a中,具体可以是查找查询响应时间达到第二时间阈值的索引关键词对应的索引链作为目标索引链。优选地,裁剪得到的每个索引链长度不超过第二长度阈值。
其中,第二长度阈值可以是经验值,也可以是基于目标索引链的长度确定的值。例如,将目标索引链的长度均值进行加权后取整,得到第二长度阈值。
举例来说,本实施例中,还可以通过统计对Trie树中所有Term对应的索引链进行查询的响应时长,得到总响应时长,进而利用该总响应时长确定出第二时间阈值,基于该第二时间阈值对Term对应的索引链进行筛选,得到响应时长长于该第二时间阈值的Term,并最后得到响应时长长于第二时间阈值的Term集合;进而对Term集合中每一Term的索引链进行剪枝处理,实现将长索引链剪枝成多条并行的短索引链,进而为快速查询奠定了基础。
以下给出了一具体应用场景下的所述索引处理方法,具体地,如图2(b)所示,实际应用中,本实施例的实现过程可以具体包括两种模式,主动模式和被动模式;这里,在一次索引处理流程中,两种模式可以择一而执行;当然,也可以两种模式共同执行,比如,在一次索引处理流程中,对Trie树中的一部分Term执行主动模式,而另外一部分执行被动模式,本实施例对此不做限制。具体地,在文档写入到Lucene索引库后,经过查询分析器得到对应的Term,并将doc id记录到倒排索引链上,形成Trie树;所有的Term都可以通过Trie树的遍历得到。这里,实际应用中,倒排索引链上还记录有偏移量。基于该Trie树,本应用场景下的具体步骤为:
步骤201-b:启动定时器,判断触发周期是否达到;在达到触发周期后,执行步骤202-b;
步骤202-b:判断Term对应的索引列表是否需要剪枝;
这里,在判断Term是否需要剪枝时,可分为主动模式和被动模式。进一步地,主动模式还可以通过设置定时脚本,周期性触发执行;触发周期可以设置为周,月等;而被动模式通过统计时间段内的请求延迟率,当出现请求延迟率超过阈值后,手动触发。
具体地:
方式一:主动模式,Term长度检测,包括:
遍历Trie树,得到每一Term对应的索引列表的索引长度,进而得到Trie树中所有Term的索引列表的索引长度,即总索引长度;根据如下算法(公式一)得到需要进行优化的,也即需要进行剪枝的具有较长索引列表的Term集合,对该较长索引列表的Term集合中的Term进行剪枝处理,以将较长索引列表(list)剪枝成具有map结构的多链索引,提高查询效率。这里,较长索引列表为链式索引,且为单链结构。
该公式一为:
其中,L为第一长度阈值;n为Trie树中Term总数;li为每一个Term的索引长度;p为整个Trie中Term的剪切系数;i为大于0小于n的自然数;A为i值从0到n的Term中,需要对索引列表进行剪枝处理的Term集合。基于此,利用L即可对Trie树中所有Term的索引列表的索引长度进行判断,并将索引长度大于L的Term作为A中的元素。
方式二:被动模式,Term响应时间统计,包括:
对查询Term对应的检索链的响应时间进行统计,得到Trie树中针对所有Term的总响应时间,根据如下算法(公式二)得到需要进行优化的,也即需要进行剪枝的具有较长响应时长的Term集合,对该具有较长响应时长的Term集合中的Term的索引链进行剪枝处理,以将较长索引链(list)剪枝成具有map结构的多链索引,提高查询效率。这里,较长索引链为单链结构。
该公式二:
其中,T为目标响应时长;m为Trie树中的所有Term总数,ti为被索引的Term查询消耗时间,也即响应时长;q为索引剪切系数;i为大于0小于m的自然数;B为i值从0到m的Term中,需要对索引列表进行剪枝处理的Term集合。基于此,利用T即可对Trie树中所有Term的索引响应时长进行判断,并将响应时长大于T的Term作为B中的元素。
步骤202-b,对于确定出需要进行剪枝处理的Term集合中的Term进行剪枝处理。
举例来说,以主动模式为例,在得到集合A后,遍历集合A中的每一个Term,为每个Term创建一个Map;进一步地,假设集合A中的某个Term的索引链长度为K,则其索引链(也即list)可被剪枝为K/L个链,每个链的索引长度不长于L;如图2(c)所示,目标Term的索引链(list)在修改前为1,2,3,4,16,28,111,…,1000,设置L为3,则该目标Term的list被剪枝成1000/3个短链,且每个短链长度为3的Map结构。
这样,通过上述方式,即可将原有的具有单链式结构的倒排索引,转换为多链式结构、且多条链之间并行排列的Map形式,进而优化了索引链条查找算法;而且,由于并行排列的多链条能够实现并发比对,所以,提高了查询效率。
为了更直观的体现本发明实施例索引处理方法能够提升检索效率,给出如下具体示例,以及对比结果;下述示例以主动模式为例进行说明。具体包括:
步骤1:分别使用Lucene提供的java接口向Lucene中插入包含21826个Term的文档。即:
步骤2:使用Lucene提供的java接口Term的索引结构,如图2(d)所示,共21826个;进一步地,利用如下公式,即可得到集合A;其中,n为21826,统计得到1-21826个Term的总索引时长为57618000,将剪切系数p设置为0.9,得到L为2376,进而得到Term中list长度小于L的集合A={I,you,my,me,his,your,have…}。
步骤3:优化前,对Term中content:have进行索引,得到索引时间统计如下:共索引文档(次数):1000;共使用时长为(ms):7830;平均使用时长(ms):7。
进一步地,对Term的索引进行剪枝处理,代码如下:
则Term have通过计算4256/2376=2,对长度为4256的索引进行剪枝,得到两条长度不大于2376长度的索引,通过javaAPI多次检索,得到索引时间:共索引文档(次数):1000;共使用时长为(ms):4483;平均使用时长(ms):4。
综上,本发明实施例所述的方法能够在Term总数为21825的条件下,将大于平均值10%的Term进行1000次索引,且时间从7830ms减少到4483ms,平均索引时间提升了1.74倍。
本发明实施例还提供了一种索引处理装置,如图3所示,本实施例所述的索引处理方法可以由所述装置实现,具体地,所述装置包括:
索引关键词获取单元301,用于获取多个索引关键词,每个索引关键词分别对应有索引链;
筛选单元302,用于从所述多个索引关键词对应的索引链中查找目标索引链,所述目标索引链满足预定的长链查找规则;
剪枝单元303,用于将所述目标索引链裁剪为至少两个索引链。
在一具体实施例中,所述索引处理装置按照预定的时间周期,周期性地进行索引处理;或者,如果索引关键词的查询响应时间达到第一时间阈值,索引处理装置进行索引处理。
在另一具体实施例中,筛选单元302,具体用于:查找索引链长度达到第一长度阈值的索引链作为目标索引链,所述长链查找规则要求索引链长度达到第一长度阈值,裁剪得到的每个索引链长度不超过所述第一长度阈值;或者,查找查询响应时间达到第二时间阈值的索引关键词对应的索引链作为目标索引链,所述长链查找规则要求索引关键词的查询响应时间达到第二时间阈值,裁剪得到的每个索引链长度不超过第二长度阈值。
在另一具体实施例中,所述筛选单元302,还用于根据所述多个索引关键词的查询响应时间的均值确定所述第二时间阈值。
在另一具体实施例中,所述筛选单元302,还用于根据所述多个索引关键词对应的索引链的长度均值确定所述第一长度阈值。
在另一具体实施例中,所述索引关键词获取单元301,具体用于通过遍历字典树获取多个索引关键词。
另外,结合图2(a)描述的本发明实施例的索引处理方法可以由索引处理设备来实现。图4示出了本发明实施例提供的索引处理设备的硬件结构示意图。
索引处理设备可以包括处理器401以及存储有计算机程序指令的存储器402。
具体地,上述处理器401可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在数据处理装置的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。在特定实施例中,存储器402包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现上述实施例中的任意一种索引处理方法。
在一个示例中,索引处理设备还可包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
通信接口403,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线410包括硬件、软件或两者,将索引处理设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
另外,结合上述实施例中的索引处理方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种索引处理方法。
图5示出了根据本发明另一些实施例提供的索引处理方法的流程示意图,如图5所示,该方法包括:
步骤501、获取查询指令,该查询指令中携带索引关键词,该索引关键词对应的索引链是按照上述任何实施例提供的方法裁剪得到的;
步骤502、基于上述索引关键词对应的各条索引链并行执行查询操作。
即采用多线程的方式并行执行查询操作。
本发明实施例提供的索引处理方法,对满足预定的长链查找规则的目标索引链裁剪为至少两个索引链,缩短了单个索引链的长度,进而可以缩短单索引链上的查询时间,在接收到查询指令后,可以在检索关键词对应的至少两个索引链上并行查询,提高了查询效率。
图6示出了根据本发明另一些实施例提供的索引处理装置的结构示意图,如图6所示,该装置包括:
查询命令获取单元601,用于获取查询指令,所述查询指令中携带索引关键词,所述索引关键词对应的索引链是按照上述任意方法实施例裁剪得到的;
查询操作执行单元602,用于基于所述索引关键词对应的各条索引链并行执行查询操作。
基于与图5所示的方法同样的发明构思,本发明实施例还提供一种索引处理设备,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现图5所示的方法。其具体硬件结构可以参照图4,此处不再赘述。
另外,结合图5所示的索引处理方法,本发明实施例可提供一种计算机可读存储介质,其上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现如图5所示的方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (12)
1.一种索引处理方法,所述方法包括:
获取多个索引关键词,每个索引关键词分别对应有索引链;
从所述多个索引关键词对应的索引链中查找目标索引链,所述目标索引链满足预定的长链查找规则;
将所述目标索引链裁剪为至少两个索引链;
所述从所述多个索引关键词对应的索引链中查找目标索引链,包括:
查找索引链长度达到第一长度阈值的索引链作为目标索引链,所述长链查找规则要求索引链长度达到第一长度阈值,裁剪得到的每个索引链长度不超过所述第一长度阈值;
或者,
查找查询响应时间达到第二时间阈值的索引关键词对应的索引链作为目标索引链,所述长链查找规则要求索引关键词的查询响应时间达到第二时间阈值,裁剪得到的每个索引链长度不超过第二长度阈值。
2.根据权利要求1所述的方法,其特征在于,该方法包括:
按照预定的时间周期,周期性地执行所述索引处理方法;
或者,
如果索引关键词的查询响应时间达到第一时间阈值,执行所述索引处理方法。
3.根据权利要求1所述的方法,其特征在于,该方法还包括:
根据所述多个索引关键词对应的索引链的长度均值确定所述第一长度阈值。
4.根据权利要求1所述的方法,其特征在于,该方法还包括:
根据所述多个索引关键词的查询响应时间的均值确定所述第二时间阈值。
5.根据权利要求1或2所述的方法,其特征在于,所述获取多个索引关键词,包括:
通过遍历字典树获取多个索引关键词。
6.一种索引处理装置,其特征在于,所述装置包括:
索引关键词获取单元,用于获取多个索引关键词,每个索引关键词分别对应有索引链;
筛选单元,用于从所述多个索引关键词对应的索引链中查找目标索引链,所述目标索引链满足预定的长链查找规则;
剪枝单元,用于将所述目标索引链裁剪为至少两个索引链;
所述筛选单元,具体用于:
查找索引链长度达到第一长度阈值的索引链作为目标索引链,所述长链查找规则要求索引链长度达到第一长度阈值,裁剪得到的每个索引链长度不超过所述第一长度阈值;
或者,
查找查询响应时间达到第二时间阈值的索引关键词对应的索引链作为目标索引链,所述长链查找规则要求索引关键词的查询响应时间达到第二时间阈值,裁剪得到的每个索引链长度不超过第二长度阈值。
7.一种索引处理设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-5中任一项所述的方法。
9.一种索引处理方法,其特征在于,所述方法包括:
获取查询指令,所述查询指令中携带索引关键词,所述索引关键词对应的索引链是按照权利要求1~5任一项所述的方法裁剪得到的;
基于所述索引关键词对应的各条索引链并行执行查询操作。
10.一种索引处理装置,其特征在于,所述装置包括:
查询命令获取单元,用于获取查询指令,所述查询指令中携带索引关键词,所述索引关键词对应的索引链是按照权利要求1~5任一项所述的方法裁剪得到的;
查询操作执行单元,用于基于所述索引关键词对应的各条索引链并行执行查询操作。
11.一种索引处理设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求9所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求9所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811516437.5A CN111309846B (zh) | 2018-12-12 | 2018-12-12 | 索引处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811516437.5A CN111309846B (zh) | 2018-12-12 | 2018-12-12 | 索引处理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309846A CN111309846A (zh) | 2020-06-19 |
CN111309846B true CN111309846B (zh) | 2023-09-05 |
Family
ID=71148579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811516437.5A Active CN111309846B (zh) | 2018-12-12 | 2018-12-12 | 索引处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309846B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360504B (zh) * | 2021-06-22 | 2023-08-15 | 东北大学 | 一种基于多区块链环境下的连接查询优化方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7809714B1 (en) * | 2007-04-30 | 2010-10-05 | Lawrence Richard Smith | Process for enhancing queries for information retrieval |
CN102063446A (zh) * | 2009-11-13 | 2011-05-18 | 中国移动通信集团四川有限公司 | 一种建立倒排索引的方法及倒排索引装置 |
CN102130833A (zh) * | 2011-03-11 | 2011-07-20 | 中兴通讯股份有限公司 | 一种高速路由器流量管理芯片链表存储管理方法及系统 |
JP2013164811A (ja) * | 2012-02-13 | 2013-08-22 | Nippon Telegr & Teleph Corp <Ntt> | データ検索装置、データ検索方法、及びデータ検索プログラム |
CN104077379A (zh) * | 2014-06-25 | 2014-10-01 | 北京海泰方圆科技有限公司 | 一种索引更新的方法 |
CN104123320A (zh) * | 2013-04-28 | 2014-10-29 | 百度在线网络技术(北京)有限公司 | 一种获取与输入问题相对应的相关问题的方法与设备 |
CN105824956A (zh) * | 2016-03-30 | 2016-08-03 | 南京邮电大学 | 一种基于链表结构的倒排索引模型及其构建方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100094856A1 (en) * | 2008-10-14 | 2010-04-15 | Eric Rodrick | System and method for using a list capable search box to batch process search terms and results from websites providing single line search boxes |
US8738673B2 (en) * | 2010-09-03 | 2014-05-27 | International Business Machines Corporation | Index partition maintenance over monotonically addressed document sequences |
US10097522B2 (en) * | 2015-05-21 | 2018-10-09 | Nili Philipp | Encrypted query-based access to data |
-
2018
- 2018-12-12 CN CN201811516437.5A patent/CN111309846B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7809714B1 (en) * | 2007-04-30 | 2010-10-05 | Lawrence Richard Smith | Process for enhancing queries for information retrieval |
CN102063446A (zh) * | 2009-11-13 | 2011-05-18 | 中国移动通信集团四川有限公司 | 一种建立倒排索引的方法及倒排索引装置 |
CN102130833A (zh) * | 2011-03-11 | 2011-07-20 | 中兴通讯股份有限公司 | 一种高速路由器流量管理芯片链表存储管理方法及系统 |
JP2013164811A (ja) * | 2012-02-13 | 2013-08-22 | Nippon Telegr & Teleph Corp <Ntt> | データ検索装置、データ検索方法、及びデータ検索プログラム |
CN104123320A (zh) * | 2013-04-28 | 2014-10-29 | 百度在线网络技术(北京)有限公司 | 一种获取与输入问题相对应的相关问题的方法与设备 |
CN104077379A (zh) * | 2014-06-25 | 2014-10-01 | 北京海泰方圆科技有限公司 | 一种索引更新的方法 |
CN105824956A (zh) * | 2016-03-30 | 2016-08-03 | 南京邮电大学 | 一种基于链表结构的倒排索引模型及其构建方法 |
Non-Patent Citations (1)
Title |
---|
申建刚.基于组合索引的语义Web 服务发现算法.《计算机工程》.2010,第36卷(第15期),第4-6页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111309846A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241274B (zh) | 文本聚类方法及装置 | |
US9584155B1 (en) | Look-ahead hash chain matching for data compression | |
EP1643383B1 (en) | System and method for incorporating anchor text into ranking of search results | |
US20160048585A1 (en) | Bloom filter with memory element | |
US9177251B2 (en) | Impulse regular expression matching | |
CN108846016B (zh) | 一种面向中文分词的搜索算法 | |
US8200670B1 (en) | Efficient document clustering | |
CN105302807B (zh) | 一种获取信息类别的方法和装置 | |
CN111309846B (zh) | 索引处理方法、装置、设备及介质 | |
CN110888981B (zh) | 基于标题的文档聚类方法、装置、终端设备及介质 | |
CN110018982A (zh) | 查找文件的方法、装置、设备及计算机可读存储介质 | |
CN103914552A (zh) | 应用检索方法和装置 | |
CN102955812A (zh) | 一种构建索引库的方法、装置及查询方法和装置 | |
US20180174681A1 (en) | Leaping search algorithm for similar sub-sequences in character sequences and application thereof in searching in biological sequence database | |
CN113132267A (zh) | 一种分布式系统、数据聚合方法和计算机可读存储介质 | |
CN106933818A (zh) | 一种快速的多关键字文本匹配方法及装置 | |
CN109992708B (zh) | 一种元数据查询的方法、装置、设备以及存储介质 | |
US20160004749A1 (en) | Search system and search method | |
CN102591941B (zh) | 一种SQLite空闲链表节点的解析方法和装置 | |
CN111461118B (zh) | 兴趣特征确定方法、装置、设备及存储介质 | |
CN110008383B (zh) | 一种基于多索引的黑白名单检索方法及装置 | |
CN110489601B (zh) | 一种基于缓存机制的实时数据索引快速动态更新方法 | |
CN115827663A (zh) | 一种物化视图的方法以及相关设备 | |
CN103399937B (zh) | 一种基于coreseek查询分页的方法及装置 | |
CN112765938B (zh) | 构造后缀数组的方法、终端设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |