一种基于抽样的分布式搜索结果合并翻页方法及系统技术方案

技术编号:10246667 阅读:156 留言:0更新日期:2014-07-23 23:54
本发明专利技术公开了一种基于抽样的分布式搜索结果合并翻页方法及系统,旨在显著降低分布式搜索结果合并翻页过程中,存在的网络带宽和计算消耗较大的问题,同时本发明专利技术亦可改良后应用于其它分布式查询系统的结果合并翻页中。其技术方案为:对索引数据切片,形成索引文件切片,然后分到各个切片搜索服务器(shard-search server)上,完成了索引文件的初始化工作;搜索结果合并节点(gather)接收外部系统的合并翻页请求,进入基于抽样的分布式搜索结果合并翻页具体步骤。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种基于抽样的分布式搜索结果合并翻页方法及系统,旨在显著降低分布式搜索结果合并翻页过程中,存在的网络带宽和计算消耗较大的问题,同时本专利技术亦可改良后应用于其它分布式查询系统的结果合并翻页中。其技术方案为:对索引数据切片,形成索引文件切片,然后分到各个切片搜索服务器(shard-search?server)上,完成了索引文件的初始化工作;搜索结果合并节点(gather)接收外部系统的合并翻页请求,进入基于抽样的分布式搜索结果合并翻页具体步骤。【专利说明】一种基于抽样的分布式搜索结果合并翻页方法及系统
本专利技术属于海量数据处理
,具体涉及一种针对分布式搜索结果合并翻页问题的方法及系统。
技术介绍
电子商务平台(B2B、B2C等)的出现极大地方便了人们的生活,当人们越来越多地依赖这些平台时,也对平台本身提出了更高的要求:比如,在淘宝、京东等交易平台上,人们希望能够更多、更快、更精准地发现自己需要的商品;而对于电商企业而言,要满足人们的这些要求,在技术层面上通常需要一款高效、精准的海量搜索系统。由于检索数据庞大且快速增长,传统的集中式的搜索系统已经越来越不能胜任大型电商平台的检索任务。随着分布式及数据切片技术的发展,市面上出现了基于数据切片的分布式搜索系统,其中以apache开源的solr及Elasticsearch公司的elasticsearch较具代表性。这些分布式的搜索系统都具备较好的可扩展性,能够将数据分片索引于庞大的机器集群上,这为解决海量数据的检索问题提供了方案。然而由于切片技术本身的局限性,这些搜索系统也存在着一些问题,搜索结果的合并翻页就是其中较为突出的一个问题。试想这样一个需求:用户需要获取某次搜索结果中,排序位次是第951名到第1000名的50条记录。对于这样一个问题,现有的分布式搜索系统的解决办法通常有两个:其一,向每个搜索切片发送检索请求,并获取各自检索结果的前1000名,然后在一个合并节点上,对来自于各个切片的搜索进行合并,最后取出其中位于第951名到第1000名间的50条记录;其二,忽略排名的严格要求,近似地认为各个切片上对等位次的记录在合并结果中的排名基本相当,如此即可简单地从各个切片上对等地获取少量记录“凑”成目标翻页。然而,这两个方案都存在着各自严重的问题。对于方案一,目标翻页的记录数只有50,而搜索系统却需要从各个切片上各自获取1000条记录,如果切片数量为n,那么一次搜索请求需要传输和重排序的记录数就是nX 1000 ;如此拓展开来,当用户所需的翻页很深时,就会带来巨大的网络带宽和计算开销;而对于方案二,很明显它牺牲了排名的准确性,这对于类似于B2B的电商平台来说,由于排名涉及到其会员的重要利益,显然是不能容忍的。那么,一个高效且精确的、针对分布式搜索结果的合并、排序、翻页方案就成了当前迫切需要解决的问题。在这个问题上,专利“合并排序分布式数据的方法”(申请号:CN03152258.0)做了相关研究,其提出的方法主要为:切片节点分别完成查询及排序工作,然后由合并节点逐次向切片节点顺序地预取一个小批量的结果集(如:每批次40条记录);每获取一个批次的记录后,合并节点对现有记录集进行一次排序,并根据排序结果决定向哪些切片请求下一批次的记录;如此往复,直到合并节点获取到用户所需的全部记录为止。该专利提出的方法在一定程度上解决了数据过度传输和合并的问题。然而该专利在使用场景上却存在着明显的局限性,首先该专利是针对主从式可堆栈网络装置的排序性能问题提出的,因此它所解决的是如何高效地获取前若干个记录的问题;而本专利技术所提出的问题是:如何高效地获取指定翻页,即获取排序结果中一个特定片段的问题,此问题实际上具有更强的“随机性”。
技术实现思路
为解决上述问题,本专利技术设计了一种基于抽样的分布式搜索结果合并翻页方法及系统,旨在显著降低分布式搜索结果合并翻页过程中,存在的网络带宽和计算消耗较大的问题,同时本专利技术亦可改良后应用于其它分布式查询系统的结果合并翻页中。本专利提供的具体技术方案如下:一种基于抽样的分布式搜索结果排序翻页方法,包括:对索引数据切片(通常基于一致性hash值),形成索引文件切片,然后分到各个切片搜索服务器(下文称shard-search server)上,完成了索引文件的初始化工作。搜索结果合并节点(下文称gather)接收外部系统的合并翻页请求,进入步骤I。步骤1:gather分别向shard-search server发送查询及针对搜索结果的抽样请求,并等待响应结果。步骤2:shard-search server依照查询条件检索,并对命中结果排序,最后从排序结果中获取能够涵盖当前翻页的前若干条记录,若这些记录数量并不巨大,可将这些记录数据存放于临时缓存中(以备步骤6的记录召回);针对这些记录,shard-search server以固定步长(如:50)做整数倍抽样,并将抽样记录返回。步骤3:gather在获取到各shard-search server的抽样结果后,将它们按照排序域值做统一排序。步骤4:基于步骤3的排序结果,gather进一步计算出所需目标翻页的记录在各个切片上的大致开始位置(以下称startpoint),同时将肯定不属于目标翻页的记录排除在外。步骤5:基于步骤4的结果,gather向各个切片发起召回记录的请求,这些请求只召回从startpoint向下的少量记录,其数量是抽样步长与翻页尺寸的和,其中翻页尺寸指的是一页包含搜索记录的数量。步骤6:各shard-search server接收到记录召回请求后,优先从步骤2中所述的记录缓存中获取所需记录,并将其所对应的缓存清空;如缓存中不存在相应记录,则可进行二次查找,最后返回目标记录。步骤7:gather在获取到各shard-search server的召回结果后,将其再次按照排序域值排序,再结合各个切片对应的startpoint从排序结果中截取出目标翻页记录,至此整个过程完毕。一种基于抽样的分布式搜索结果合并翻页系统,包括:gather (搜索结果合并节点)和shard-search server (搜索切片服务器)两个大部分,其中gather进一步细化为TopSamplesFetcher (记录抽样抓取器)、TopSamplesMerger (记录抽样合并器)>ApproximateStartPointsCalculator (翻页近似起点计算器)、PageFetcher (指定翻页抓取器)、PageMerger (指定翻页合并截取器)几个主要部件;而shard-search server则主要包括TopSampler (记录抽样器)、TopSearcher (记录查询器)、TopResultTmpCache (记录结果临时缓存器)、PageGetter (翻页获取器)几个主要部件。整体上,gather与shard-search server通过网络进行通信(本专利技术省略说明),它们按照不同的请求各自调用内部部件进行处理,并交换计算结果,最终由gather完成最后翻页结果的计算并返回。gather,是整个系统的枢纽,用于接收外部系统的排序翻页请求,并按请本文档来自技高网
...

【技术保护点】
一种基于抽样的分布式搜索结果排序翻页方法,其特征在于,包括:对索引数据切片,形成索引文件切片,然后分到各个切片搜索服务器(shard‑search server)上,完成了索引文件的初始化工作;搜索结果合并节点(gather)接收外部系统的合并翻页请求,进入步骤1;步骤1:搜索结果合并节点(gather)分别向各个切片搜索服务器发送查询及针对搜索结果的抽样请求,并等待响应结果;步骤2:切片搜索服务器(shard‑search server)依照查询条件检索,并对命中结果排序,最后从排序结果中获取能够涵盖当前翻页的前若干条记录,针对这些记录,切片搜索服务器以固定步长做整数倍抽样,并将抽样记录返回;步骤3:搜索结果合并节点(gather)在获取到各个切片搜索服务器(shard‑search server)的抽样结果后,将它们按照排序域值做统一排序;步骤4:基于步骤3的排序结果,搜索结果合并节点(gather)进一步计算出所需目标翻页的记录在各个切片上的大致开始位置(startpoint),同时将肯定不属于目标翻页的记录排除在外;步骤5:基于步骤4的结果,搜索结果合并节点(gather)向各个切片发起召回记录的请求,这些请求只召回从目标翻页记录在各个切片上大致开始位置(startpoint)向下的少量记录;步骤6:各个切片搜索服务器(shard‑search server)接收到记录召回请求,查找后返回目标记录;步骤7:搜索结果合并节点(gather)在获取到各个切片搜索服务器(shard‑search server)的召回结果后,将其再次按照排序域值排序,再结合各个切片对应的目标翻页记录在各个切片上大致开始位置(startpoint)从排序结果中截取出目标翻页记录,至此整个过程完毕。...

【技术特征摘要】

【专利技术属性】
技术研发人员:梁峰
申请(专利权)人:焦点科技股份有限公司
类型:发明
国别省市:江苏;32

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

1