索引的处理方法及装置制造方法及图纸

技术编号:14239418 阅读:46 留言:0更新日期:2016-12-21 14:54
本发明专利技术提供一种索引的处理方法及装置,通过将服务器的所有内核划分为两个内核集合,限制读线程运行于第一内核集合中的内核,并限制写线程运行于第二内核集合中的内核,避免了由于写线程频繁修改cache中的数据,而导致对于读线程来说cache中所存储的数据命中率低的问题,提高了读线程在需要读取第一索引时,从cache中读取第一索引的概率,从而提高了查询效率。

Method and device for processing index

The present invention provides a method and a device for processing an index, through all divided into two core server kernel set limit read thread running on the first set of kernel in kernel, and limit the writing thread running on the second kernel set in the kernel, to avoid the write thread frequently modify data in cache, and lead to store read thread in the cache data hit rate is low, improves the reading thread in the need to read the first index, the probability index reads the first from the cache, thereby improving the query efficiency.

【技术实现步骤摘要】

本专利技术涉及互联网
,尤其涉及一种索引的处理方法及装置
技术介绍
服务器可以为用户提供发布信息功能以及查询信息功能。通常,服务器是通过索引的方式来管理文档,其中,索引指示了各关键词所对应的文档。现有技术中,服务器采用不同的线程来分别为用户提供查询信息功能和发布信息功能。具体的,通过读线程为用户提供查询信息功能,通过写线程为用户提供发布信息功能。对于查询信息功能,读线程需要根据索引来确定与用户输入的查询序列匹配的关键词,并根据所确定的关键词向用户返回对应的文档,因此读线程需要对索引进行读操作。对于发布信息功能,写线程需要确定用户所发布的文档中的关键词,在索引中写入所确定的关键词与所发布的文档的对应关系,因此写线程需要对索引进行写操作。其中,在读线程对索引进行读操作时,首先判断运行该读线程的内核的高速缓冲存储器(cache)中是否保存了该索引;若是,则直接从cache中读取该索引;否则,从内存中读取该索引,同时也将读取到的该索引存储在cache中,使得以后对该索引的读取可以直接从cache中获得。在写线程对索引进行写操作时,将待写入的数据写入到运行该写线程的内核的cache中。但是,现有技术中,存在查询效率较低的问题。
技术实现思路
本专利技术提供一种索引的处理方法及装置,用以解决现有技术中查询效率较低的问题。第一方面,本专利技术提供一种索引的处理方法,所述方法应用于服务器,所述服务器中的所有内核被划分为两个内核集合;其中,读线程运行在第一内核集合中的内核上,写线程运行在第二内核集合中的内核上,所述读线程用于为用户提供查询信息功能,所述写线程用于为用户提供发布信息功能;所述方法包括:所述读线程读取第一索引,所述第一索引用于指示关键词与文档标识的对应关系;所述读线程根据所述第一索引及用户输入的查询序列,确定与所述查询序列对应的文档标识。在一种可能的设计中,所述第一索引包括N个子索引,N为大于0的整数;所述N个子索引中的每一个子索引对应K个读线程,K为大于或等于0的整数;相应的,所述读线程读取第一索引,包括:第一读线程读取第一子索引;其中,所述第一读线程为所述第一子索引对应的读线程。在一种可能的设计中,所述第一内核集合中的所有内核被划分为N个内核子集合,所述N个内核子集合中的每一个内核子集合与所述每一个子索引一一对应;所述每一个子索引对应的读线程运行在所述每一个子索引对应的内核子集合中的内核上。在一种可能的设计中,所述读取索引之前,还包括:预估所述每一个子索引所需的内核数和线程数;根据所述每一个子索引所需的内核数,确定所述每一个子索引对应的内核子集合;根据所述每一个子索引所需的线程数,确定所述每一个子索引对应的读线程。在一种可能的设计中,所述方法还包括:所述写线程根据用户输入的待发布信息,对第二索引进行更新。第二方面,本专利技术提供一种索引的处理装置,所述装置为服务器,所述服务器中的所有内核被划分为两个内核集合;其中,读线程运行在第一内核集合中的内核上,写线程运行在第二内核集合中的内核上,所述读线程用于为用户提供查询信息功能,所述写线程用于为用户提供发布信息功能;所述装置包括:所述读线程的第一处理模块,用于读取第一索引,所述第一索引用于指示关键词与文档标识的对应关系;所述读线程的第二处理模块,用于根据所述第一索引及用户输入的查询序列,确定与所述查询序列对应的文档标识。在一种可能的设计中,所述第一索引包括N个子索引,N为大于0的整数;所述N个子索引中的每一个子索引对应K个读线程,K为大于或等于0的整数;相应的,所述读线程的处理模块包括:第一读线程的处理子模块,用于读取第一子索引;其中,所述第一读线程为所述第一子索引对应的读线程。在一种可能的设计中,所述第一内核集合中的所有内核被划分为N个内核子集合,所述N个内核子集合中的每一个内核子集合与所述每一个子索引一一对应;所述每一个子索引对应的读线程运行在所述每一个子索引对应的内核子集合中的内核上。在一种可能的设计中,所述装置还包括:预估模块和确定模块;所述预估模块,用于预估所述每一个索引所需的内核数和线程数;所述确定模块用于:根据所述每一个索引所需的内核数,确定所述每一个索引对应的内核子集合;根据所述每一个索引所需的线程数,确定所述每一个索引对应的读线程。在一种可能的设计中,所述装置还包括:所述写线程的处理模块,用于根据用户输入的待发布信息,对第二索引进行更新。本专利技术提供的索引的处理方法及装置,通过将服务器的所有内核划分为两个内核集合,限制读线程运行于第一内核集合中的内核,并限制写线程运行于第二内核集合中的内核,避免了由于写线程频繁修改cache中的数据,而导致对于读线程来说cache中所存储的数据命中率低的问题,提高了读线程在需要读取第一索引时,从cache中读取第一索引的概率,从而提高了查询效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术索引的处理方法的应用场景的示意图;图2为本专利技术索引的处理方法实施例一的流程图;图3为本专利技术倒排索引的示意图;图4为本专利技术索引的处理方法实施例二的流程图;图5为本专利技术不同方式下的查询耗时对比图;图6为本专利技术对第一内核集合进行划分的示意图;图7为本专利技术索引的处理装置实施例一的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的方法可以应用于任何提供查询信息功能和发布信息功能的服务器,该服务器包括M个处理器,M为大于0的整数。其中,M个处理器中的每个处理器可以包括一个或多个内核。服务器的所有内核被划分为两个内核集合,分别为第一内核集合和第二内核集合;其中,读线程与所述第一内核集合绑定(即,所述读线程运行在所述第一内核集合中的内核上),写线程与所述第二内核集合绑定(即,所述写线程运行在所述第二内核集合中的内核上),所述读线程用于为用户提供查询信息功能,所述写线程用于为用户提供发布信息功能。例如,如图1所示,服务器包括2个处理器,分别为处理器1和处理器2;处理器1包括4个内核,分别为内核1、内核2、内核3和内核4;处理器2包括2个内核,分别为内核5和内核6。其中,对于内核集合的划分例如可以为:内核1-内核5被划分至第一内核集合,内核6被划分至第二内核集合。需要说明的是,读线程与第一内核集合绑定是为了限定该读线程运行于该第一内核集合中的内核;写线程与第二内核集合绑定是为了限定该写线程运行于该第二内核集合中的内核。即,该第一内核集合中的内核运行该读线程而不运行该写线程,该第二内核集合中的内核运行该写线程而不运行该读线程。其中,对于读线程,其在读取索引时,首先判断运行该读线程的内核的cache中是否保存了该索引;若是,则直接从cac本文档来自技高网...
索引的处理方法及装置

【技术保护点】
一种索引的处理方法,其特征在于,所述方法应用于服务器,所述服务器中的所有内核被划分为两个内核集合;其中,读线程运行在第一内核集合中的内核上,写线程运行在第二内核集合中的内核上,所述读线程用于为用户提供查询信息功能,所述写线程用于为用户提供发布信息功能;所述方法包括:所述读线程读取第一索引,所述第一索引用于指示关键词与文档标识的对应关系;所述读线程根据所述第一索引及用户输入的查询序列,确定与所述查询序列对应的文档标识。

【技术特征摘要】
1.一种索引的处理方法,其特征在于,所述方法应用于服务器,所述服务器中的所有内核被划分为两个内核集合;其中,读线程运行在第一内核集合中的内核上,写线程运行在第二内核集合中的内核上,所述读线程用于为用户提供查询信息功能,所述写线程用于为用户提供发布信息功能;所述方法包括:所述读线程读取第一索引,所述第一索引用于指示关键词与文档标识的对应关系;所述读线程根据所述第一索引及用户输入的查询序列,确定与所述查询序列对应的文档标识。2.根据权利要求1所述的方法,其特征在于,所述第一索引包括N个子索引,N为大于0的整数;所述N个子索引中的每一个子索引对应K个读线程,K为大于或等于0的整数;相应的,所述读线程读取第一索引,包括:第一读线程读取第一子索引;其中,所述第一读线程为所述第一子索引对应的读线程。3.根据权利要求2所述的方法,其特征在于,所述第一内核集合中的所有内核被划分为N个内核子集合,所述N个内核子集合中的每一个内核子集合与所述每一个子索引一一对应;所述每一个子索引对应的读线程运行在所述每一个子索引对应的内核子集合中的内核上。4.根据权利要求3所述的方法,其特征在于,所述读取索引之前,所述方法还包括:预估所述每一个子索引所需的内核数和线程数;根据所述每一个子索引所需的内核数,确定所述每一个子索引对应的内核子集合;根据所述每一个子索引所需的线程数,确定所述每一个子索引对应的读线程。5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:所述写线程根据用户输入的待发布信息,对第二索引进行更新。6.一种索引的处理装置,其特征在于,所述装置为服务器或者所述装置...

【专利技术属性】
技术研发人员:吕静
申请(专利权)人:五八同城信息技术有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1