掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法、设备及计算机可读存储介质

文献发布时间:2023-06-19 13:29:16


一种数据处理方法、设备及计算机可读存储介质

技术领域

本发明涉及计算机技术领域,具体涉及一种数据处理方法、设备及计算机可读存储介质。

背景技术

搜索出来的结果通常以相似性排序,如不加以干预,会导致相同店铺的商品在同一页出现多次,甚至相同店铺的商品连续出现,使得同一店铺在同一页面所占比例较大,用户体验不佳。

发明内容

针对现有技术中的技术缺陷,本发明实施例的目的在于提供一种数据处理方法、设备及计算机可读存储介质。

为实现上述目的,第一方面,本发明实施例提供了一种数据处理方法,包括:

解析查询请求步骤:接收用户通过浏览器端输入的查询语句,对所述查询语句进行解析得到搜索任务;

分片搜索步骤:将所述搜索任务转发到多个索引分片上进行搜索,得到初步搜索结果;每一所述初步搜索结果均带有店铺id属性;

聚合步骤:对所述初步搜索结果进行聚合,形成一候选集;所述候选集包括多个索引分片搜索得到的多个初步搜索结果;

重排序步骤:对所述候选集中的多个初步搜索结果进行重新排列组合,得到最终搜索结果,并将所述最终搜索结果返回至所述浏览器端。

作为本申请的一种具体实施方式,解析查询请求步骤具体为:

通过搜索引擎的任意一个节点接收所述查询语句,对所述查询语句进行查询改写和添加必要的返回字段,形成所述搜索任务;该必要的返回字段至少包括返回店铺id属性。

作为本申请的一种具体实施方式,分片搜索步骤具体为:

通过每一索引分片根据所述搜索任务中的搜索条件进行搜索,得到搜索数据,对所述搜索数据进行匹配度排序,提取匹配度排序后的前N个搜索数据作为所述初步搜索结果。

作为本申请的一种具体实施方式,重排序步骤具体为:

对所述候选集进行遍历,按页为单位对所述初步搜索结果进行重新排列组合,得到最终搜索结果。

第二方面,本发明实施例提供了一种数据处理设备,包括:

解析查询请求模块,用于接收用户通过浏览器端输入的查询语句,对所述查询语句进行解析得到搜索任务;

分片搜索模块,用于将所述搜索任务转发到多个索引分片上进行搜索,得到初步搜索结果;每一所述初步搜索结果均带有店铺id属性;

聚合模块,用于对所述初步搜索结果进行聚合,形成一候选集;所述候选集包括多个索引分片搜索得到的多个初步搜索结果;

重排序模块,用于对所述候选集中的多个初步搜索结果进行重新排列组合,得到最终搜索结果;

返回模块,用于将所述最终搜索结果返回至所述浏览器端。

在本申请的某些具体实施方式中,所述解析查询请求模块具体用于:

通过搜索引擎的任意一个节点接收所述查询语句,对所述查询语句进行查询改写和添加必要的返回字段,形成所述搜索任务;该必要的返回字段至少包括返回店铺id属性。

在本申请的某些具体实施方式中,所述分片搜索模块具体用于:

通过每一索引分片根据所述搜索任务中的搜索条件进行搜索,得到搜索数据,对所述搜索数据进行匹配度排序,提取匹配度排序后的前N个搜索数据作为所述初步搜索结果。

在本申请的某些具体实施方式中,所述重排序模块包括重排序总控单元、重复判定单元、页头重复结果处理单元和最终重复结果处理单元;

所述重排序总控单元,用于对整个重排序过程进行控制;

所述重复判定单元,用于遍历所述候选集,以页为单位,获取所述初步搜索结果中的店铺id属性,统计包含该店铺id属性的店铺个数,若所述店铺个数小于等于页店铺限制个数,则将该店铺id属性放入当页搜索结果集中,否则,则将该店铺id属性放入下页页头重复结果集中;

所述页头重复结果处理单元,用于依次从该下页页头重复结果集中取出数据,并将该数据放入所述重复判定单元,实现对初步搜索结果的再次重复数据校验;

所述最终重复结果处理单元,用于当候选集已遍历完、还未达到用户的请求页码且页头重复结果集不为空时,依次将所述页头重复结果集中的搜索结果放入页搜索结果集中,并进行分页处理,得到最终搜索结果。

第三方面,本发明实施例还提供了另一种数据处理设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器通过总线相互连接,所述存储器用于存储计算机程序,所述计算机程序包括程序指令。其中,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序/指令。该计算机程序/指令被处理器执行时实现如上述第一方面所述方法的步骤。

实施本发明实施例,可对搜索结果进行全局排序最优化,精确控制同一店铺在同一页面的占比,从而提升用户体验。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。

图1是本发明实施例的原理图;

图2是本发明实施例提供的数据处理方法流程图;

图3是本发明第一实施例提供的数据处理设备的结构图;

图4是图3中重排序模块的结构图;

图5是本发明第二实施例提供的数据处理设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为提高搜索的速度和效率,大型搜索引擎往往采用分布式部署的方式进行检索。请参考图1,分布式搜索引擎由几部分组成:将请求发送到各分片中搜索,把各分片返回的结果合并、重排,截取分页偏移量数据返回结果。本发明实施例主要是运用搜索引擎在获取到各分片返回的候选结果后,对候选结果的优化排序,并返回结果。

请参考图2,本发明实施例提供的数据处理方法主要包括:

S101,解析查询请求步骤:接收用户通过浏览器端输入的查询语句,对所述查询语句进行解析得到搜索任务。

具体地,用户通过在浏览器输入关键词(查询语句)进行搜索,搜索引擎任意一个节点接收到请求,对查询语加上查询改写,加上必要的返回字段。这里要求至少返回店铺id。因为在重排序时需要用到店铺id,再将请求转发到索引所在的分片节点上,分片节点负责具体的搜索任务。此外,该解析查询请求的节点同时也承担聚合分片结果的任务,以及重排序和返回最终结果的任务。

S102,分片搜索步骤:将所述搜索任务转发到多个索引分片上进行搜索,得到初步搜索结果。

其中,每一所述初步搜索结果均带有店铺id属性。

具体地,通过每一索引分片根据所述搜索任务中的搜索条件进行搜索,得到搜索数据,对所述搜索数据进行匹配度排序,提取匹配度排序后的前N个搜索数据作为所述初步搜索结果。

S103,聚合步骤:对所述初步搜索结果进行聚合,形成一候选集。

其中,所述候选集包括多个索引分片搜索得到的多个初步搜索结果。

具体地,从各分片中提到到前N的结果,通过该模块把它们聚合在一块,按匹配分数的高低依次排序,最后形成一个候选集。如果这个索引有3个分片,那么这个候选集中就有3*N个搜索结果,并且都带有店铺id属性。

S104,重排序步骤:对所述候选集中的多个初步搜索结果进行重新排列组合,得到最终搜索结果,并将所述最终搜索结果返回至所述浏览器端。

具体地,对所述候选集进行遍历,按页为单位对所述初步搜索结果进行重新排列组合,得到最终搜索结果。

该部分更为具体的过程描述可参考后续设备实施例部分,在此不再赘述。

从以上描述可以得知,本发明实施例所提供的数据处理方法,可对搜索结果进行全局排序最优化,精确控制同一店铺在同一页面的占比,从而提升用户体验。

基于相同的发明构思,本发明实施例提供了一种数据处理设备,如图3所示,该设备包括:

解析查询请求模块10,用于接收用户通过浏览器端输入的查询语句,对所述查询语句进行解析得到搜索任务;

分片搜索模块11,用于将所述搜索任务转发到多个索引分片上进行搜索,得到初步搜索结果;每一所述初步搜索结果均带有店铺id属性;

聚合模块12,用于对所述初步搜索结果进行聚合,形成一候选集;所述候选集包括多个索引分片搜索得到的多个初步搜索结果;

重排序模块13,用于对所述候选集中的多个初步搜索结果进行重新排列组合,得到最终搜索结果;

返回模块14,用于将所述最终搜索结果返回至所述浏览器端;具体为,接收到搜索请求的节点,将重排序模块返回的搜索结果返回给浏览器端(客户端)。

其中,解析查询请求模块10具体用于:

通过搜索引擎的任意一个节点接收所述查询语句,对所述查询语句进行查询改写和添加必要的返回字段,形成所述搜索任务;该必要的返回字段至少包括返回店铺id属性。

进一步地,用户通过在浏览器输入关键词进行搜索,搜索引擎任意一个节点接收到请求,对查询语加上查询改写,加上必要的返回字段,这里要求至少返回店铺id,因为在重排序时需要用到店铺id,再将请求转发到索引所在的分片节点上,分片节点负责具体的搜索任务。该解析查询请求的节点同时也承担聚合分片结果的任务,以及重排序和返回最终结果的任务。

具体地,所述分片搜索模块11具体用于:

通过每一索引分片根据所述搜索任务中的搜索条件进行搜索,得到搜索数据,对所述搜索数据进行匹配度排序,提取匹配度排序后的前N个搜索数据作为所述初步搜索结果。

进一步地,解析查询请求后,将请求转发各分片节点。各分片节点接收到查询语句,不需要再做查询改写,真正的查询是在各分片节点上。分片节点按搜索条件获取符合条件的结果,并通过匹配度排序,提取前N个ID作为结果,并按要求返回必须的店铺id,为重排序时使用。

具体地,聚合模块12具体用于:

用于对所述初步搜索结果进行聚合,形成一候选集;所述候选集包括多个索引分片搜索得到的多个初步搜索结果。

进一步地,从各分片中提到到前N的结果,通过该模块把它们聚合在一块,按匹配分数的高低依次排序,最后形成一个候选集。如果这个索引有3个分片,那么这个候选集中就有3*N个搜索结果,并且都带有店铺id属性。

具体地,重排序模块13具体用于:

拿到各分片返回的结果,并聚合成一个候选集,接下来在这个模块中对候选集进行重新排列组合,按页为单为进行重新排列组合,一页排好后,进行下一页的排列组合,直到排到用户请求的页码,或所有搜索结果都排完为止,返回请求页码的搜索结果。

再请参考图4,重排序模块13可以细分为重排序总控单元131、重复判定单元132、页头重复结果处理单元133和最终重复结果处理单元134。

其中,重排序总控单元131主要用于:

该单元是对候选集进行遍历,以及对其它重排序单元的管理。候选集只遍历一遍,依次从候选集中拿出搜索结果,并放入重复判定单元,重复判定单元依据搜索结果中的店铺id属性来判断是否有重复或重复次数,当某个店铺出现次数超出限制次数,则会把该搜索结果交到页头重复结果处理单元。当一页重排组合完后,会进行下一页的页头重复结果处理单元,页头重复结果处理单元运行完后,接着继续遍历候选集。重复执行以上步骤,直至达到请求的页码,或候选集全部遍历完,如果候选集全部遍历完,还没有达到请求页码,则进入最终重复结果处理单元,最后返回请求页码的搜索结果。

重复判定单元132主要用于:

重复是以页为单位判定,每页新重排列组合时,都会把符合条件的搜索结果放入页搜索结果集中。进来该模块的搜索结果有候选集遍历的搜索结果和页头重复结果处理单元遍历的搜索结果。拿到搜索结果后,首先获取搜索结果的店铺id属性,统计页搜索结果集中,包含该店铺id的搜完结果,如果统计出来的个数小于等于页店铺限制个数,则可以放入该页搜索结果集中,否则,放入下页页头重复结果集中。

页头重复结果处理单元133主要用于:

候选集遍历,使页搜索结果集数据越来越多,当达到一页限制搜索结果个数时,则进入到下一页重新排列组合。页头的重复结果集来自上一页重新排列组合后产能的“重复”结果,只有该页页头重复结果集不为空,才执行该模块,否则,跳过该模块。在执行该模块前,先暂停遍历候选集,切换到遍历该页页头重复结果集。在遍历该页页头重复结果集时,和遍历候选集相似,依次从该页页头重复结果集中拿出搜索结果,并放入重复判定模块,对遍历出来的搜索结果再次进行“重复”数据的校验。

最终重复结果处理单元134主要用于:

当候选集已全部遍历完,还没有达到请求页码,而且页头重复结果集不为空,则进入最终重复结果处理模块。该模块依次把页头重复结果集中的搜索结果放入页搜索结果集中,并进行分页处理。经过上面几个模块的重新排例组合操作后,剩下来的“重复”数据已经很难再按规则组合一个页面了,所以把剩下的“重复”结果拼接在按规则重新排列组合好的页搜索结果集后。

可选地,本发明实施例还提供了另一种数据处理设备。如图5所示,该数据处理设备可以包括:一个或多个处理器101、一个或多个输入设备102、一个或多个输出设备103和存储器104,上述处理器101、输入设备102、输出设备103和存储器104通过总线105相互连接。存储器104用于存储计算机程序,所述计算机程序包括程序指令,所述处理器101被配置用于调用所述程序指令执行上述数据处理方法实施例部分的方法。

应当理解,在本发明实施例中,所称处理器101可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

输入设备102可以包括键盘等,输出设备103可以包括显示器(LCD等)、扬声器等。

该存储器104可以包括只读存储器和随机存取存储器,并向处理器101提供指令和数据。存储器104的一部分还可以包括非易失性随机存取存储器。例如,存储器104还可以存储设备类型的信息。

具体实现中,本发明实施例中所描述的处理器101、输入设备102、输出设备103可执行本发明实施例提供的数据处理方法的实施例中所描述的实现方式,在此不再赘述。

实施本发明实施例所提供的数据处理设备,可对搜索结果进行全局排序最优化,精确控制同一店铺在同一页面的占比,从而提升用户体验。

该数据处理设备可以根据实际需求,合理配置单个店铺的商品在一页中出现的次数,使店铺的商品散落在各页,并最大可能地遵从匹配优先的原则。本实施例解决了搜索中相同店铺商品在同一个出现多次、或相同店铺的商品连续出现多次导致同一店铺在同一页所占比例较大的问题,可以精确地控制同一店铺商品在同一页的数量、位置和比例。

进一步地,本发明实施例还提供了一种可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现:上述方法实施例部分的方法。

进一步地,本发明实施例提供了一种计算机程序产品,其上存储有计算机程序/指令。该计算机程序/指令被处理器执行时实现:上述方法实施例部分的方法。

该计算机程序产品应当理解为主要通过计算机程序实现其解决方案的软件产品。

所述计算机可读存储介质可以是前述实施例所述的客户机的内部存储单元,例如系统的硬盘或内存。所述计算机可读存储介质也可以是所述系统的外部存储设备,例如所述系统上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述系统的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述系统所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的单元和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种数据处理方法、装置、计算机设备和计算机可读存储介质
  • 数据处理方法、装置、计算机设备和计算机可读存储介质
技术分类

06120113693322