CN117828157A - 索引调度方法及其装置、设备、介质 - Google Patents

索引调度方法及其装置、设备、介质 Download PDF

Info

Publication number
CN117828157A
CN117828157A CN202410020406.XA CN202410020406A CN117828157A CN 117828157 A CN117828157 A CN 117828157A CN 202410020406 A CN202410020406 A CN 202410020406A CN 117828157 A CN117828157 A CN 117828157A
Authority
CN
China
Prior art keywords
index
commodity information
slave
search
request
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.)
Pending
Application number
CN202410020406.XA
Other languages
English (en)
Inventor
庞晓磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Shangyan Network Technology Co ltd
Original Assignee
Guangzhou Shangyan Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Shangyan Network Technology Co ltd filed Critical Guangzhou Shangyan Network Technology Co ltd
Priority to CN202410020406.XA priority Critical patent/CN117828157A/zh
Publication of CN117828157A publication Critical patent/CN117828157A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及电商搜索技术领域中一种索引调度方法及其装置、设备、介质,所述方法包括:获取任意店铺搜索服务推送的商品信息搜索请求,所述商品信息搜索请求携带店铺标识和主索引;将商品信息搜索请求下发至搜索引擎,由搜索引擎中的索引调度器根据所述店铺标识调度所述主索引下的目标从索引;由所述搜索引擎根据所述商品信息搜索请求搜索所述目标从索引,返回请求结果;将所述请求结果发送给所述店铺搜索服务,以应答所述商品信息搜索请求。本申请通过为任意店铺搜索服务提供统一的主索引,根据店铺标识精准地调度主索引下的目标从索引服务于商品信息搜索请求,能够高效地得出请求结果,而且无需上游服务理解多个从索引对其中之一作出调用指示。

Description

索引调度方法及其装置、设备、介质
技术领域
本申请涉及电商搜索技术领域,尤其涉及一种索引调度方法及其相应的装置、计算机设备、计算机可读存储介质。
背景技术
在独立站电商搜索领域,所有建立在独立站上的线上店铺的商品信息都存储在同一个Elasticsearch的索引中,通过设置合理的分片数量保持每个分片的搜索性能。但是随着数据量的增大,导致索引越来越大,分片数也越来越多,每个分片大小也越来越大,由于Elasticsearch的分布式搜索特性,一次完整的对同一线上店铺的商品信息的搜索,会搜索索引中所有分片,随着整体的数据量增大,搜索性能会受到很大影响,搜索耗时长。
传统技术中,通常是增加索引的分片数以减少单分片的大小,保障单分片的搜索性能,但在整体数据量过大的时候,搜索性能仍然受到不小的影响,搜索耗时长,影响使用搜索服务的用户的体验。
鉴于传统技术的不足,本申请人长期从事相关领域的研究,为解决电商搜索技术领域业内难题,故另辟蹊径。
发明内容
本申请的首要目的在于解决上述问题至少之一而提供一种索引调度方法及其相应的装置、计算机设备、计算机可读存储介质。
为满足本申请的各个目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种索引调度方法,包括如下步骤:
获取任意店铺搜索服务推送的商品信息搜索请求,所述商品信息搜索请求携带店铺标识和主索引;
将所述商品信息搜索请求下发至搜索引擎,由搜索引擎中的索引调度器根据所述店铺标识调度所述主索引下的目标从索引;
由所述搜索引擎根据所述商品信息搜索请求搜索所述目标从索引,返回请求结果;
将所述请求结果发送给所述店铺搜索服务,以应答所述商品信息搜索请求。
进一步的实施例中,获取任意店铺搜索服务推送的商品信息搜索请求之前,包括如下步骤:
在搜索引擎中构建主索引及其下多个从索引;
响应数据源同步事件,获取该事件所指定的店铺的商品信息下发至搜索引擎;
由搜索引擎中的索引调度器根据所述商品信息所属店铺的店铺标识确定出所述主索引下的从索引作为待写入从索引,将所述商品信息写入所述待写入从索引中。
进一步的实施例中,由所述搜索引擎根据所述商品信息搜索请求搜索所述目标从索引,返回请求结果,包括如下步骤:
由搜索引擎中的协调节点将所述商品信息搜索请求,转发给所述目标从索引的所有分片分别所在的数据节点;
由所有分片并行搜索出所述商品信息搜索请求所需的部分商品标识及其打分值,每个分片所在的数据节点将相应的部分商品标识及其打分值返回给协调节点;
由所述协调节点对所有的部分商品标识进行数据操作,产出商品标识集合;
由所述协调节点根据商品标识集合中的商品标识访问相应的数据节点读取相应的商品信息构成请求结果。
进一步的实施例中,在搜索引擎中构建主索引及其下多个从索引,包括如下步骤:
获取主索引配置信息,所述主索引配置信息包括主索引信息、从索引信息,所述主索引信息包括主索引名称和主索引所匹配的调度哈希算法及其算法指定参数,所述从索引信息包括从索引个数其相应的从索引名称。
调用搜索引擎的配置接口,将所述主索引配置信息传递给该配置接口,以驱动其根据所述主索引信息构建主索引,根据所述从索引信息构建相应的从索引。
进一步的实施例中,将所述请求结果发送给所述店铺搜索服务,包括如下步骤:
确定出所述请求结果所包含的每个商品信息中,所述店铺搜索服务为搜索场景下展示所需提供的文本信息;
采用曝光成效模型根据每个商品信息中的文本信息,确定出每个商品信息对应的综合评分;
根据所述综合评分对请求结果中的商品信息进行排序,将排序后的请求结果发送给店铺搜索服务。
进一步的实施例中,由搜索引擎中的索引调度器根据所述店铺标识调度所述主索引下的目标从索引,包括如下步骤:
由搜索引擎中的索引调度器读取预设的主索引配置信息,确定主索引配置信息中的算法指定参数为所述店铺标识;
调用所述主索引配置信息中的调度哈希算法根据所述算法指定参数,确定出目标从索引。
进一步的实施例中,将所述请求结果发送给所述店铺搜索服务,以应答所述商品信息搜索请求之后,包括如下步骤:
确定出所述搜索引擎在每个预设的时间周期内接收的请求数量;
当连续多个所述时间周期对应的请求数量均小于预设阈值时,停止下发商品信息搜索请求至所述搜索引擎;
响应从索引数量变更事件,获取业务所需的从索引数量,构建搜索引擎中的新主索引及其下对应该从索引数量的从索引;
将写入所述主索引的店铺的商品信息重定向至写入新主索引,并将主索引中的所有店铺的商品信息迁移到新主索引;
删除迁移完成后的所述主索引,创建新主索引的别名为所述主索引的主索引名称。
另一方面,适应本申请的目的之一而提供的一种索引调度装置,包括请求获取模块、从索引调度模块、结果返回模块以及结果发送模块,其中,请求获取模块,用于获取任意店铺搜索服务推送的商品信息搜索请求,所述商品信息搜索请求携带店铺标识和主索引;从索引调度模块,用于将所述商品信息搜索请求下发至搜索引擎,由搜索引擎中的索引调度器根据所述店铺标识调度所述主索引下的目标从索引;结果返回模块,用于由所述搜索引擎根据所述商品信息搜索请求搜索所述目标从索引,返回请求结果;结果发送模块,用于将所述请求结果发送给所述店铺搜索服务,以应答所述商品信息搜索请求。
进一步的实施例中,所述请求获取模块之前,包括:第一索引构建子模块,用于在搜索引擎中构建主索引及其下多个从索引;事件响应子模块,用于响应数据源同步事件,获取该事件所指定的店铺的商品信息下发至搜索引擎;索引写入子模块,用于由搜索引擎中的索引调度器根据所述商品信息所属店铺的店铺标识确定出所述主索引下的从索引作为待写入从索引,将所述商品信息写入所述待写入从索引中。
进一步的实施例中,所述结果返回模块,包括:请求转发子模块,用于由搜索引擎中的协调节点将所述商品信息搜索请求,转发给所述目标从索引的所有分片分别所在的数据节点;标识返回子模块,用于由所有分片并行搜索出所述商品信息搜索请求所需的部分商品标识及其打分值,每个分片所在的数据节点将相应的部分商品标识及其打分值返回给协调节点;集合产出子模块,用于由所述协调节点对所有的部分商品标识进行数据操作,产出商品标识集合;结果构成子模块,用于由所述协调节点根据商品标识集合中的商品标识访问相应的数据节点读取相应的商品信息构成请求结果。
进一步的实施例中,所述索引构建子模块,包括:信息获取子模块,用于获取主索引配置信息,所述主索引配置信息包括主索引信息、从索引信息,所述主索引信息包括主索引名称和主索引所匹配的调度哈希算法及其算法指定参数,所述从索引信息包括从索引个数其相应的从索引名称。接口调用子模块,用于调用搜索引擎的配置接口,将所述主索引配置信息传递给该配置接口,以驱动其根据所述主索引信息构建主索引,根据所述从索引信息构建相应的从索引。
进一步的实施例中,所述结果发送模块,包括:信息确定子模块,用于确定出所述请求结果所包含的每个商品信息中,所述店铺搜索服务为搜索场景下展示所需提供的文本信息;评分确定子模块,用于采用曝光成效模型根据每个商品信息中的文本信息,确定出每个商品信息对应的综合评分;结果发送子模块,用于根据所述综合评分对请求结果中的商品信息进行排序,将排序后的请求结果发送给店铺搜索服务。
进一步的实施例中,所述从索引调度模块,包括:配置读取子模块,用于由搜索引擎中的索引调度器读取预设的主索引配置信息,确定主索引配置信息中的算法指定参数为所述店铺标识;从索引确定子模块,用于调用所述主索引配置信息中的调度哈希算法根据所述算法指定参数,确定出目标从索引。
进一步的实施例中,所述结果发送模块之后,包括:总量确定子模块,用于确定出所述搜索引擎在每个预设的时间周期内接收的请求数量;下发停止子模块,用于当连续多个所述时间周期对应的请求数量均小于预设阈值时,停止下发商品信息搜索请求至所述搜索引擎;第二索引构建子模块,用于响应从索引数量变更事件,获取业务所需的从索引数量,构建搜索引擎中的新主索引及其下对应该从索引数量的从索引;信息迁移子模块,用于将写入所述主索引的店铺的商品信息重定向至写入新主索引,并将主索引中的所有店铺的商品信息迁移到新主索引;别名设置子模块,用于删除迁移完成后的所述主索引,创建新主索引的别名为所述主索引的主索引名称。
又一方面,适应本申请的目的之一而提供的一种计算机设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的索引调度方法的步骤。
又一方面,适应本申请的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述的索引调度方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
本申请的技术方案存在多方面优势,包括但不限于如下各方面:
本申请通过获取任意店铺搜索服务推送的商品信息搜索请求,所述商品信息搜索请求携带店铺标识和主索引,将商品信息搜索请求下发至搜索引擎,由搜索引擎中的索引调度器根据店铺标识调度主索引下的目标从索引,由所述搜索引擎根据商品信息搜索请求搜索目标从索引,返回请求结果,将所述请求结果发送给所述店铺搜索服务,以应答商品信息搜索请求。可见,能够为任意店铺搜索服务提供统一的主索引,根据店铺标识精准地调度主索引下的目标从索引服务于商品信息搜索请求,能够高效地得出请求结果,无需上游服务理解搜索引擎底层中的多个从索引与商品信息搜索请求之间的调用关系,以此来为请求指示多个从索引中的目标从索引进行调用。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请示例性的电商平台的网络架构;
图2为本申请的索引调度方法的典型实施例的流程示意图;
图3为本申请的实施例中向构建出的搜索引擎中的主索引及其下多个从索引,写入商品信息至主索引下的从索引的流程示意图;
图4为本申请的实施例中采用主索引下的从索引的多分片并行搜索的流程示意图;
图5为本申请的实施例中构建搜索引擎中的主索引及其下多个从索引的流程示意图;
图6为本申请的实施例中对请求结果进行排序后,发送给店铺搜索服务的流程示意图;
图7为本申请的实施例中确定出目标从索引的流程示意图;
图8为本申请的实施例中主索引扩容或缩容的流程示意图;
图9为本申请的索引调度装置的原理框图;
图10为本申请所采用的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
如图1所示的网络架构中,电商平台82部署于互联网中以向其用户提供相应的服务,电商平台82的商家用户的设备80和消费者用户的设备81同理也接入互联网,以使用电商平台提供的服务。
示例性的电商平台82,借助互联网基础设施而面向社会大众提供产品和/或服务的供需匹配,在电商平台82中,产品和/或服务是作为商品信息而提供的,为简化描述,在本申请中使用商品、产品等概念指代电商平台82中的产品和/或服务,具体可以是物理产品、数字产品、门票、服务订阅、其他线下履行的服务等。
现实中的各方实体可以用户的身份接入电商平台82,使用电商平台82提供的各种在线服务,实现参与电商平台82所实现的商务活动的目的。这些实体可以是自然人、法人或社会组织等。对应商务活动中的商家和消费者两类实体,电商平台82相应存在商家用户和消费者用户两大类用户。商务活动中产品流通链条的各方实体,包括厂家、卖方、零售商、物流提供方等,均可以商家用户的身份在电商平台82中使用在线服务,而商务活动中的消费者,包括现实或潜在的消费者,则可以其相应的消费者用户的身份在电商平台82中使用在线服务。实际商务活动中,同一个实体既可以商家用户的身份活动,也可以消费者用户的身份进行活动,对此应灵活变通理解。
用于部署电商平台82的基础设施主要包括后台架构和前端设备,后台架构通过服务集群运行各种在线服务,包括面向平台方的中间件或前端服务、面向消费者的服务、面向商家的服务等,来丰富和完善其服务功能;前端设备主要涵盖用户用来作为客户端接入电商平台82的终端设备,包括但不限于各种移动终端、个人计算机、销售点设备等。示例而言,商家用户可以通过其终端设备80来为其在线店铺录入商品信息,或者使用电商平台开放的接口生成其商品信息;消费者用户可以通过其终端设备81访问电商平台82所实现的在线店铺的网页,通过网页上提供的购物按键,触发购物流程,在购物流程中调用电商平台82所提供的各种在线服务,从而实现购物下单的目的。
在一些实施例中,电商平台82可以通过包括处理器和存储器的处理设施来实现,该处理设施存储一组指令,该指令在被执行时使得电商平台82执行本申请所涉及的电子商务和支持功能。处理设施可以是服务器、客户端、网络基础设施、移动计算平台、云计算平台、固定计算平台或其他计算平台的一部分,并且提供电商平台82的电子组件、商家设备、支付网关、应用开发者、营销渠道、运输提供商、客户设备、销售点设备等。
电商平台82可以实现为云计算服务、软件即服务(SaaS)、基础设施即服务(IaaS)、平台即服务(PaaS)、桌面即服务(DaaS)、托管软件即服务、移动后端即服务(MBaaS)、信息技术管理即服务(ITMaaS)等在线服务。在一些实施例中,电商平台82的各个功能部件可以被实现为适于在各种平台和操作系统上操作,例如,对于一个在线店铺来说,其管理员用户无论在iOS、Android、HomonyOS、还是网页等各种实施例中,都享有相同或类似的功能。
电商平台82可以为各个商家实现其相应的独立站,以运行其相应的在线店铺,为商家提供相应的商务管理引擎实例,供商家建立、维护、运行其在一个或多个独立站中的一个或多个在线店铺。商务管理引擎实例可以用于一个或多个在线店铺的内容管理、任务自动化和数据管理,可以通过接口或内建组件等方式配置在线店铺的各种具体业务流程以支持商务活动的实现。独立站是具有跨境服务功能的电商平台82的基础设施,商户可以基于独立站较为集中自主地维护其在线店铺。独立站通常具有商家专用的域名和存储空间,不同独立站之间具有相对独立性,电商平台82可以为海量的独立站提供标准化或个性化的技术支持,使得商家用户可以定制出自身相适应的商务管理引擎实例,并使用这个商务管理引擎实例来维护其拥有的一个或多个在线店铺。
在线店铺可以通过商家用户以管理员身份登录其商务管理引擎实例来实施后台配置和维护,在电商平台82的基础设施所提供的各种在线服务的支持下,商家用户可以其管理员身份对其在线店铺中的各种功能进行配置,对各种数据进行查阅等,例如,商家用户可以管理其在线店铺的各个方面,例如查看在线商店最近的活动、更新在线店铺产品目录、管理订单、最近访问活动、总订单活动等;商家用户还可以通过获取报告或度量来查看关于商业和对商家的在线商店的访问者的更详细的信息,例如显示商家的整体业务的销售摘要、活动销售营销渠道的特定销售和参与数据等。
电商平台82可以提供用于提供电子通信和营销的通信设施和相关联的商家接口,例如利用电子消息聚合设施来收集和分析商家、消费者、商家设备、客户设备、销售点设备等之间的通信交互,聚合和分析通信,例如用于增加提供产品销售的潜力等。例如,消费者可能有与产品有关的问题,这可能在消费者和商家(或代表商家的基于自动处理器的代理)之间产生对话,其中通信设施负责交互并向商家提供关于如何提高销售概率的分析。
一些实施例中,可以提供适合安装到终端设备的应用程序来服务于不同用户的访问需求,以便使各种用户能够在终端设备中,通过运行应用程序来访问电商平台82,例如电商平台82中的在线店铺的商家后台模块等,通过这些功能来实现商务活动的过程中,电商平台82可以将支持实现商务活动相关的各种功能实现为中间件或在线服务并开放相应的接口,然后将接口访问功能相对应的工具包植入到应用程序中来实现功能扩展和任务实现。商务管理引擎可以包括一系列基本功能,并通过API将这些功能暴露给在线服务和/或应用程序调用,在线服务和应用程序通过远程调用相对应的API而使用相应的功能。
在商务管理引擎实例的各个组件的支持下,电商平台82可以提供在线购物功能,使商家能够以灵活透明的方式与客户建立联系,消费者用户可以在线选购物品,创建商品订单,在商品订单中提供货物的送达地址,并完成商品订单的支付确认。然后,商家可以审查并完成或取消订单。商务管理引擎实例携带的审查组件可以实现商业流程的合规使用,以确保订单在实际履行之前适合履行。订单有时候也可能是欺诈性的,需要加以验证(例如身份证检查),有一种需要商家等待以确保收到资金的支付方法可以起到防患这种风险的作用,等等。订单风险可能由第三方通过订单风险API等提交的欺诈检测工具产生。在进行履行之前,商家可能需要获取支付信息或等待接收支付信息,以便将订单标记为已支付,至此商家才可以准备交付产品。诸如此类的情况都可进行相应的审查。审查流程可以由履行组件来实现。商家可以借助履行组件审查、调整工作,并触发相关的履行服务,例如:通过手动履行服务,当商家将产品挑选并包装在盒子中、购买运输标签并输入其跟踪号,或者仅将物品标记为已履行时使用;自定义履行服务,可以定义发送电子邮件进行通知;API履行服务,可以触发第三方应用程序在第三方创建履行记录;遗留履行服务,可以触发从商务管理引擎到第三方的自定义API调用;礼品卡履行服务。可以提供生成号码并激活礼品卡。商户可以使用订单打印机应用程序打印装运单。当物品被包装在盒子里并准备好运输、跟踪、交付、消费者收到验证等时,可以执行履行过程。
可以看出,电商平台所提供的服务,正是基于产品为核心展开的,相应的商品数据是电商平台的基础数据,通过商品数据提供商品信息,对商品数据的挖掘利用,是实现各种技术服务的基础,其中包括利用电商平台的商品数据中的用户交易数据和商品数据为实时流式数据处理系统的运行提供基础性的服务。因此,本申请的实时流式数据处理系统可以运行于电商平台的机群的任意一台或多台服务器中,以便利用电商平台提供的各种商品数据实现各种功能。
本申请的一种索引调度方法,可被编程为计算机程序产品,部署于客户端或服务器中运行而实现,例如,本申请的示例性应用场景中,可以在电商客服平台的服务器中部署实现,藉此可以通过访问该计算机程序产品运行后开放的接口,通过图形用户界面与该计算机程序产品的进程进行人机交互而执行该方法。
请参阅图2,本申请的索引调度方法,在其典型实施例中,包括如下步骤:
步骤S1100、获取任意店铺搜索服务推送的商品信息搜索请求,所述商品信息搜索请求携带店铺标识和主索引;
本申请的电商平台服务于多个独立站,每个独立站上均搭建相对应的单个线上店铺,每个线上店铺由相应的商家用户创建、运营、维护,例如由商家用户上架在线上店铺上销售的商品,录入这些商品的商品信息,并将这些商品信息关联该线上店铺提交到所述电商平台的服务器。线上店铺主要为买家用户提供商品展示、店铺搜索服务、添加购物车、下订单购买、物流配送、售后服务、客户服务等等。
可以理解,任意店铺提供的店铺搜索服务被使用时,会触发生成商品信息搜索请求,并且需要指定该请求所需访问的索引,对此,本申请提供一个主索引的索引名称,指示任意店铺搜索服务相对应的商品信息搜索请求所需访问的索引。所述主索引以其下所有从索引存放所有线上店铺的商品信息,每个线上店铺的所有商品信息均存放在一个从索引中。
所述商品信息包含描述商品的一切文本信息,例如商品标题、商品详情文本、商品标签、商品品类、商品价格、产品参数、商品销量、商品评论等等。
电商平台中的买家用户可以在其客户端上访问任意的所述独立站,进入到该独立站的线上店铺进行购物。买家用户在购物过程中,为了快速找寻所需的商品信息,可以使用线上店铺提供的店铺搜索服务,提供相应的搜索文本,之后,所述客户端被触发生成包含的该搜索文本的商品信息搜索请求,并以该商品信息搜索请求携带该线上店铺的店铺标识,和该请求所需访问的索引指示为主索引的索引名称。所述店铺标识用于指代一个线上店铺,并区别与其他的线上店铺,具体可由本领域技术人员灵活变通设定,例如可采用SHA-256哈希算法或其他任意一种确保唯一性和一致性的算法,根据各个商家用户为其线上店铺区别于其他的线上店铺所设定的店铺名称作为所述算法的输入参数,从而生成该店铺名称对应的店铺标识。
电商平台的服务器接收所述商品信息搜索请求并对其响应,获得该请求及其携带的店铺标识和主索引。
步骤S1200、将所述商品信息搜索请求下发至搜索引擎,由搜索引擎中的索引调度器根据所述店铺标识调度所述主索引下的目标从索引;
所述搜索引擎采用Elasticsearch实现,所述Elasticsearch是一个基于Lucene的全文搜索引擎,也可称分布式搜索引擎,用于Java开发的,且开源,具有Http Web和无框架Json文档的分布式。
所述服务器选取搜索引擎的集群中任意一个节点作为协调节点,并与该协调节点建立连接,将所述商品信息搜索请求下发到该协调节点。所述连接可以是通过网络协议(如HTTP或TCP)建立的,以便服务器能够与搜索引擎的集群中的协调节点进行通信和交互。
搜索引擎的协调节点接收所述商品信息搜索请求,然后,协调节点调用索引调度器根据该请求携带的主索引的索引名称和店铺标识,读取该主索引的主索引配置信息,确定主索引配置信息中的算法指定参数为所述店铺标识,然后,调用所述主索引配置信息中的调度哈希算法将所述算法指定参数作为输入,确定出目标从索引。所述调度哈希算法可以是哈希取模算法或一致性哈希算法,一种实施例中,采用哈希取模算法具体是hash(store_id)%num,其中store_id是店铺标识,num为所述主索引下从索引的个数。
步骤S1300、由所述搜索引擎根据所述商品信息搜索请求搜索所述目标从索引,返回请求结果;
进一步,协调节点将所述商品信息搜索请求广播到所述目标从索引的所有分片分别所在节点,将这些节点作为数据节点,每个所述分片在本地的数据节点,同时根据商品信息搜索请求中的搜索文本执行搜索,并构建一个匹配文档大小为from+size的优先队列,接着每个分片所在的数据节点返回各自优先队列中所有商品标识,以及每个商品标识对应的打分值给协调节点。由协调节点接收所有商品标识,根据每个商品标识的打分值对所有商品标识进行数据的合并、排序、分页等任意一项或任意多项数据操作,产出商品标识集合。由协调节点根据商品标识集合中的商品标识,访问提交所述商品标识的数据节点,从所述数据节点中读取相应商品标识的商品信息构成请求结果。
可以理解,所述打分值是以量化的数值,表示相应的商品信息与所述商品信息搜索请求中的搜索文本之间的相关度。打分值越高相对应的相关度越高,打分值越低相对应的相关度越低。
所述商品标识用于指代一个商品信息,并区别于其他的商品信息,具体可由本领域技术人员灵活变通设定,例如可采用SHA-256哈希算法或其他任意一种确保唯一性和一致性的算法,将商品信息作为所述算法的输入参数,从而生成该商品信息对应的商品标识。
步骤S1400、将所述请求结果发送给所述店铺搜索服务,以应答所述商品信息搜索请求。
在服务器接收到搜索引擎返回的请求结果后,为了请求结果能够吸引到买家用户的购物兴趣,对该请求结果中商品信息进行推荐排序,具体而言,获取请求结果中每个商品信息中的商品评论,确定出其中好评数、差评数、所有评论数,获取请求结果中每个商品信息中的销量、价格,以及每个商品信息对应的打分值,筛选出所有销量中的销量最大值、所有价格中的价格最大值、所有打分值中的打分值最大值,进一步,据此,采用推荐评分计算公式,计算出请求结果中每个商品信息对应的推荐评分,示范性公式举例如下:
其中,Recommend Score为单个商品信息的推荐评分,a为该商品信息中的好评数,b为该商品信息中的差评数,c为该商品信息中所有评论数,d为该商品信息的打分值,e为该商品信息中销量,f为该商品信息中的价格,MaxD、MaxE、MaxE分别为所述打分值最大值、销量最大值、价值最大值。
可见,所述推荐评分综合考虑到每个商品信息相对于其他商品信息的价格、销量、与搜索文本的相关度,以及该商品信息的评论偏向正面的程度,使得能够一定程度上准确反映商品的综合质量,有助于吸引买家用户,增加购买的可能性。
根据请求结果中每个商品信息对应的推荐评分从高到低的顺序,对所有商品信息进行排序,所述服务器将排序后的请求结果发送给使用所述店铺搜索服务的客户端。
根据本申请的典型实施例可以知晓,本申请的技术方案存在多方面优势,包括但不限于如下各方面:
本申请通过获取任意店铺搜索服务推送的商品信息搜索请求,所述商品信息搜索请求携带店铺标识和主索引,将商品信息搜索请求下发至搜索引擎,由搜索引擎中的索引调度器根据店铺标识调度主索引下的目标从索引,由所述搜索引擎根据商品信息搜索请求搜索目标从索引,返回请求结果,将所述请求结果发送给所述店铺搜索服务,以应答商品信息搜索请求。可见,能够为任意店铺搜索服务提供统一的主索引,根据店铺标识精准地调度主索引下的目标从索引服务于商品信息搜索请求,能够高效地得出请求结果,无需上游服务理解搜索引擎底层中的多个从索引与商品信息搜索请求之间的调用关系,以此来为请求指示多个从索引中的目标从索引进行调用。
请参阅图3,进一步的实施例中,步骤S1100、获取任意店铺搜索服务推送的商品信息搜索请求之前,包括如下步骤:
步骤S1000、在搜索引擎中构建主索引及其下多个从索引;
获取主索引配置信息,所述主索引配置信息包括主索引信息、从索引信息,所述主索引信息包括主索引名称和主索引所匹配的调度哈希算法及其算法指定参数,所述从索引信息包括从索引个数其相应的从索引名称。
示范性举例如下:
text_index{"_follow":{"suffix":"text_index_hash","num":4,"function":"storeHashFunc","routeKey":"store_id"},"mappings":{"properties":{"id":{"type":"integer"},"store_id":{"type":"integer"}}}}
其中:text_index为主索引名称,"function":"storeHashFunc"为调度哈希算法是storeHashFunc,其具体可以是哈希取模算法或者一致性哈希算法,可按需设定,"routeKey":"store_id"为调度哈希算法的算法指定参数是店铺标识,"suffix":"text_index_hash"为从索引前缀是text_index_hash,"num":4为设定从索引个数是4个。"id":{"type":"integer"}为从索引对应下标id是integer的数据类型,"store_id":{"type":"integer"}为店铺标识是integer的数据类型。
调用kibana Dev tools作为搜索引擎的配置接口,在其中以“PUT”方式执行所述主索引配置信息,在构建出相应的主索引及其下多个从索引。为便于理解示范性举例,执行上述示范性举例的主索引配置信息,会生成text_index作为主索引名称的主索引,及其下的从索引名称分别为test_index_hash0、test_index_hash1、test_index_hash2、test_index_hash3的四个从索引。
通过使用所述kibana Dev tools可以直接与Elasticsearch进行交互、执行查询、索引管理等操作。
步骤S1010、响应数据源同步事件,获取该事件所指定的店铺的商品信息下发至搜索引擎;
所述数据源是一个存储所有店铺的商品信息的数据库,该数据库可以采用MySQL、PostgreSQL、MongoDB等中任意一种的数据库实现。所述服务器接收到由商家用户录入并提交其线上店铺上架商品的商品信息时,将这些商品信息关联相应商品标识和该线上店铺的店铺标识,存储到数据源中。
可以理解,所述服务器可部署Flink作为所述数据源的连接器,从而由Flink执行CDC任务来同步所述数据源中所有商品信息到所述搜索引擎,具体而言,当数据源发生变动时,响应数据源同步事件,通过预先附加在数据源上的触发器或者binlog等途径,将相应变动操作记录下来。所述连接器通过使用Debezium捕获数据源中相应发生变更的商品信息,并且选取搜索引擎的集群中任意一个节点作为协调节点,将该连接器与该协调节点建立连接,从而将所述变更的商品信息携带默认配置的所述主索引的主索引名称下发到该协调节点。之后,实现由搜索引擎中同步该变更商品信息,使得搜索引擎中的商品信息与数据源中的商品信息保持一定程度上实时的相同。
步骤S1020、由搜索引擎中的索引调度器根据所述商品信息所属店铺的店铺标识确定出所述主索引下的从索引作为待写入从索引,将所述商品信息写入所述待写入从索引中。
所述协调节点接收所述商品信息,然后,调用索引调度器根据该商品信息所属店铺的店铺标识,根据商品信息携带的主索引的主索引名称读取所述主索引的主索引配置信息,确定主索引配置信息中的算法指定参数为所述店铺标识,然后,调用所述主索引配置信息中的调度哈希算法将所述算法指定参数作为输入,确定出相应的从索引作为待写入从索引,将所述商品信息写入所述待写入从索引中。为便于理解示范性举例,调用哈希算法使用的是哈希取模算法是hash(store_id)%num,根据某个store_id计算出hash值为3再与num为4进行取模,最终算出为3,那么对应从索引下标为3即从索引名称为test_index_hash3的从索引便是待写入从索引。
对于所述协调节点将所述商品信息写入待写入从索引中,所述待写入从索引被分成多个分片时,具体而言,所述协调节点获取所述商品信息的商品标识,调用哈希取模算法将该商品标识作为算法指定参数,确定出待写入从索引中的属于主分片的分片作为目标主分片,将所述商品信息写入到该目标主分片中,之后,若是该目标主分片有其对应的属于副本分片的分片,同步该商品信息至所述副本分片的分片,使得所述副本分片的分片中的商品信息与所述目标主分片中的商品信息一定程度上实时相同。所述哈希取模算法是hash(product_id)%shard_num,其中product_id为商品标识,shard_num为待写入从索引的分片个数。
本实施例中,揭示了构建搜索引擎的主索引及其下从索引,将数据源中发生变动的商品信息同步到相应店铺标识对应的待写入从索引中。一方面,确保同一店铺标识即同一店铺的商品信息均写入到相对应的同一个待写入从索引里,有利于提高同一店铺的所有商品信息的全量搜索性能,另一方面,在搜索引擎读写过程中,索引调度器调度主索引下的从索引均依据相同的主索引配置信息,能够确保读写统一。
请参阅图4,进一步的实施例中,步骤S1300、由所述搜索引擎根据所述商品信息搜索请求搜索所述目标从索引,返回请求结果,包括如下步骤:
步骤S1310、由搜索引擎中的协调节点将所述商品信息搜索请求,转发给所述目标从索引的所有分片分别所在的数据节点;
协调节点将所述商品信息搜索请求广播到所述目标从索引的所有分片分别所在节点,将这些节点作为数据节点。
步骤S1320、由所有分片并行搜索出所述商品信息搜索请求所需的部分商品标识及其打分值,每个分片所在的数据节点将相应的部分商品标识及其打分值返回给协调节点;
每个所述分片在本地的数据节点,同时根据商品信息搜索请求中的搜索文本执行搜索,并构建一个匹配文档大小为from+size的优先队列,接着每个分片所在的数据节点返回各自优先队列中所有商品标识,以及每个商品标识对应的打分值给协调节点。
步骤S1330、由所述协调节点对所有的部分商品标识进行数据操作,产出商品标识集合;
由协调节点接收所有商品标识,根据每个商品标识的打分值对所有商品标识进行数据的合并、排序、分页等任意一项或任意多项数据操作,产出商品标识集合。
步骤S1340、由所述协调节点根据商品标识集合中的商品标识访问相应的数据节点读取相应的商品信息构成请求结果。
由协调节点调用哈希取模算法根据商品标识集合中的商品标识分别作为算法指定参数,确定出每个所述商品标识对应的分片,对于所述每个分片,访问该分片所在的数据节点,向该数据节点转发该分片相对应的商品标识。所述每个分片在本地的数据节点,同时根据相对应的商品标识执行搜索,接着所述每个分片所在的数据节点返回各自搜索到的商品信息给协调节点。协调节点接收所有的所述商品信息构成请求结果。
所述哈希取模算法是hash(product_id)%shard_num,其中product_id为商品标识,shard_num为待写入从索引的分片个数。
对于所述确定每个所述商品标识对应的分片,每个分片具体是属于主分片的分片、该属于主分片的分片对应的所有属于副本分片的分片中的一个分片,可采用轮询算法、最小连接数算法、随机算法中任意一项实现,以保障读取数据的负载均衡。
本实施例中,通过搜索引擎中协调节点调度目标从索引中所有分片,在各自的数据节点中并行根据商品信息搜索请求执行搜索,从而以这些数据节点分别的返回数据产出商品标识集合,进而协调节点调度该集合中每个商品标识对应的分片,在各自的数据节点中并行根据相应的商品标识执行搜索,从而以这些数据节点分别的返回数据构成请求结果。可见,能够借助多分片并行搜索,高效地获得请求结果。
请参阅图5,进一步的实施例中,步骤S1000、在搜索引擎中构建主索引及其下多个从索引,包括如下步骤:
步骤S1001、获取主索引配置信息,所述主索引配置信息包括主索引信息、从索引信息,所述主索引信息包括主索引名称和主索引所匹配的调度哈希算法及其算法指定参数,所述从索引信息包括从索引个数其相应的从索引名称。
示范性举例如下:
text_index{"_follow":{"suffix":"text_index_hash","num":4,"function":"storeHashFunc","routeKey":"store_id"},"mappings":{"properties":{"id":{"type":"integer"},"store_id":{"type":"integer"}}}}
其中:text_index为主索引名称,"function":"storeHashFunc"为调度哈希算法是storeHashFunc,其具体可以是哈希取模算法或者一致性哈希算法,可按需设定,"routeKey":"store_id"为调度哈希算法的算法指定参数是店铺标识,"suffix":"text_index_hash"为从索引前缀是text_index_hash,"num":4为设定从索引个数是4个。"id":{"type":"integer"}为从索引对应下标id是integer的数据类型,"store_id":{"type":"integer"}为店铺标识是integer的数据类型。
步骤S1002、调用搜索引擎的配置接口,将所述主索引配置信息传递给该配置接口,以驱动其根据所述主索引信息构建主索引,根据所述从索引信息构建相应的从索引。
调用kibana Dev tools作为搜索引擎的配置接口,在其中以“PUT”方式执行所述主索引配置信息,在构建出相应的主索引及其下多个从索引。为便于理解示范性举例,执行上述示范性举例的主索引配置信息,会生成text_index作为主索引名称的主索引,及其下的从索引名称分别为test_index_hash0、test_index_hash1、test_index_hash2、test_index_hash3的四个从索引。
通过使用所述kibana Dev tools可以直接与Elasticsearch进行交互、执行查询、索引管理等操作。
本实施例中,揭示了根据主索引配置构建搜索引擎中的主索引及其下多个从索引的过程。
请参阅图6,进一步的实施例中,步骤S1400、将所述请求结果发送给所述店铺搜索服务,包括如下步骤:
步骤S1410、确定出所述请求结果所包含的每个商品信息中,所述店铺搜索服务为搜索场景下展示所需提供的文本信息;
可在服务器中构建每个店铺搜索服务与其对应搜索场景之间的映射关联关系,以及在该搜索场景下所需展示商品信息中字段,使得服务器在接收到店铺搜索服务发送的商品信息搜索请求时,能够知道该店铺搜索服务对应的搜索场景,以及在该搜索场景下所需展示商品信息中字段。
获取所述请求结果所包含的每个商品信息中对应所述字段的文本构成所述文本信息。
步骤S1420、采用曝光成效模型根据每个商品信息中的文本信息,确定出每个商品信息对应的综合评分;
所述曝光成效模型被预先训练至收敛状态,习得根据商品信息中店铺搜索服务为搜索场景下展示所需提供的文本信息,预测出该文本信息在所述搜索场景下曝光后被使用所述店铺搜索服务的买家用户点击的点击率,和被该买家用户点击后的购买的点击购买率。
所述曝光成效模型在模型结构上是一个双塔模型,其中包括共享输入层、以及点击率预测塔、点击购买率预测塔,所述共享输入层可以是文本特征提取层可以采用Bert实现,所述点击率预测塔可以是采用DeepFM实现,所述点击购买率预测塔可以是采用DeepFM实现,点击率预测塔与点击购买率预测塔两者之间的参数不共享,需要各自学习。
对于所述曝光成效模型的训练过程,具体而言,获取训练集,所述训练集中包括多个训练样本,以及每个训练样本的监督标签,所述训练样本为商品信息中店铺搜索服务为搜索场景下展示所需提供的文本信息,所述监督标签为根据该训练样本对应的文本信息曝光后是否被使用该店铺搜索服务的超过第一预设个数的买家用户点击,相应标注的点击率,例如超过第一预设个数,标注点击率为1,没有超过第一预设个数,标注点击率为0,以及根据该训练样本对应的文本信息是否被超过第二预设个数的买家用户点击后购买相对应商品,相应标注的点击购买率,例如超过第二预设个数,标注点击购买率为1,没有超过第二预设个数,标注点击购买率为0。不同的训练样本对应的文本信息不同。所述第一预设个数和第二预设个数可按需设定。
调用训练集中的单个训练样本及其监督标签,输入到曝光成效模型,由曝光成效模型中的共享输入层提取点击率预测塔和点击购买率预测塔共享的共享特征,进而由点击预测塔根据共享特征提取出点击率特征,将所述点击率特征映射到预设的二分类,确定出二分类中曝光后会被买家用户点击的正类,以及曝光后不会被买家用户点击的负类,获得映射到该正类的概率作为预测点击率;由点击购买率预测模型根据共享特征提取出点击购买率特征,将所述点击购买率特征映射到预设的二分类,确定出二分类中点击后会被买家用户购买的正类,以及曝光后不会被买家用户购买的负类,获得映射到该正类的概率作为预测点击购买率。调用预设的交叉熵损失函数,根据所述训练样本的监督标签计算所述预测点击率和预测点击购买率的交叉熵损失值,当所述交叉熵损失值达到预设阈值时,表明曝光成效模型已被训练至收敛状态,从而可以终止曝光成效模型训练;当所述交叉熵损失值未达到预设阈值时,表明曝光成效模型未收敛,于是根据交叉熵损失值对模型实施梯度更新,通常通过反向传播修正模型各个环节的权重参数以使模型进一步逼近收敛,然后,继续调用其他训练样本对曝光成效模型实施迭代训练,直至该模型被训练至收敛状态为止。
不难理解,将所述请求结果中每个商品信息中的文本信息,分别作为所述训练至收敛的曝光成效模型的输入,获得每个商品信息对应的点击率和点击购买率,将所述点击率乘上所述点击购买率得出该商品信息的综合评分。
步骤S1430、根据所述综合评分对请求结果中的商品信息进行排序,将排序后的请求结果发送给店铺搜索服务。
根据请求结果中每个商品信息对应的综合评分从高到低的顺序,对所有商品信息进行排序,所述服务器将排序后的请求结果发送给使用所述店铺搜索服务的客户端。
本实施例中,通过采用曝光成效模型确定出请求结果中每个商品信息对应的综合评分,据此对所有商品信息进行排序,将排序后的请求结果发送给店铺搜索服务,能够一定程度上请求结果能够吸引到使用商品搜索服务的买家用户,有利于促成商品交易。
请参阅图7,进一步的实施例中,步骤S1200、由搜索引擎中的索引调度器根据所述店铺标识调度所述主索引下的目标从索引,包括如下步骤:
步骤S1210、由搜索引擎中的索引调度器读取预设的主索引配置信息,确定主索引配置信息中的算法指定参数为所述店铺标识;
所述主索引配置信息包括主索引信息、从索引信息,所述主索引信息包括主索引名称和主索引所匹配的调度哈希算法及其算法指定参数,所述从索引信息包括从索引个数其相应的从索引名称。
将所述主索引配置信息中的算法指定参数赋值为所述店铺标识。
步骤S1220、调用所述主索引配置信息中的调度哈希算法根据所述算法指定参数,确定出目标从索引。
一种实施例中,所述调度哈希算法为哈希取模算法,具体是hash(store_id)%num,其中store_id是店铺标识,num为所述主索引下从索引的个数。
为便于理解示范性举例,执行所述哈希取模算法,根据某个store_id计算出hash值为2再与num为10进行取模,最终算出为2,那么对应从索引下标为2的从索引便是目标从索引。
本实施例中,揭示了索引调度器的工作原理,确保根据店铺标识准确调度相对应的目标从索引。
请参阅图8,进一步的实施例中,步骤S1400、将所述请求结果发送给所述店铺搜索服务,以应答所述商品信息搜索请求之后,包括如下步骤:
步骤S1500、确定出所述搜索引擎在每个预设的时间周期内接收的请求数量;
一种实施例中,可在Kibana中创建一个监控仪表板,将请求计数器添加到该监控仪表板中,实时统计出直至当前搜索引擎所接收到的请求总数量,在每过一个预设的时间周期获取该监控仪表板所统计出相对应的请求总数量,对于当前单个时间周期是首个时间周期时,该首个时间周期内接收的请求数量为该首个时间周期的请求总数量,对于当前单个时间周期不是首个时间周期时,将当前单个时间周期的请求总数量减去上一个时间周期的请求总数量,得出当前单个时间周期内接收的请求数量,所述时间周期可按需设定,例如设置为30min。据此,便可确定出所述集群在每个时间周期内接收的请求数量。
步骤S1510、当连续多个所述时间周期对应的请求数量均小于预设阈值时,停止下发商品信息搜索请求至所述搜索引擎;
当连续多个所述时间周期对应的请求数量均小于预设阈值时,即表示当前搜索引擎的集群持续较长时间内都处理相对较少的搜索请求,此时停止下发商品信息搜索请求至所述搜索引擎只会影响极少部分的买家用户体验,故而可在此适当时候停止下发商品信息搜索请求至所述搜索引擎。所述预设阈值可由本领域技术人员根据此处揭示再按需设定。
步骤S1520、响应从索引数量变更事件,获取业务所需的从索引数量,构建搜索引擎中的新主索引及其下对应该从索引数量的从索引;
可以理解,在当前从索引数量冗余或者是当前从索引数量不足时,响应从索引数量变更事件,对应从索引数量冗余,获取缩减当前从索引数量后的从索引数量即业务所需的从索引数量,可按需缩减;对应当前从索引数量不足,获取扩充当前从索引数量后的从索引数量即业务所需的从索引数量,可按需扩充。
设置新主索引的主索引配置信息,所述主索引配置信息包括新主索引信息、从索引信息,所述新主索引信息包括新主索引名称和新主索引所匹配的调度哈希算法及其算法指定参数,所述从索引信息包括从索引个数其相应的从索引名称。示范性举例如下:业务所需的从索引数量相对于当前从索引数量4扩充至10。
text_index_new{"_follow":{"suffix":"text_index_new_hash","num":10,"function":"storeHashFunc","routeKey":"store_id"},"mappings":{"properties":{"id":{"type":"integer"},"store_id":{"type":"integer"}}}}
其中:text_index_new为新主索引名称,"function":"storeHashFunc"为调度哈希算法是storeHashFunc,其具体可以是哈希取模算法或者一致性哈希算法,可按需设定,"routeKey":"store_id"为调度哈希算法的算法指定参数是店铺标识,"suffix":"text_index_hash"为从索引前缀是text_index_new_hash,"num":10为设定从索引个数是10个。"id":{"type":"integer"}为从索引对应下标id是integer的数据类型,"store_id":{"type":"integer"}为店铺标识是integer的数据类型。
调用kibana Dev tools作为搜索引擎的配置接口,在其中以“PUT”方式执行所述新主索引配置信息,在构建出相应的新主索引及其下多个从索引。为便于理解示范性举例,执行上述示范性举例的新主索引配置信息,会生成text_index_new作为新主索引名称的新主索引,及其下的从索引名称分别为text_index_new_hash0、text_index_new_hash1、text_index_new_hash2、text_index_new_hash3……text_index_new_hash9、text_index_new_hash10的10个从索引。
步骤S1530、将写入所述主索引的店铺的商品信息重定向至写入新主索引,并将主索引中的所有店铺的商品信息迁移到新主索引;
在响应数据源同步事件时,将商品信息携带默认配置的所述主索引的主索引名称更换为所述新主索引的新主索引名称,由此,后续索引调度器便可根据新主索引名称读取新主索引配置信息,根据商品信息的店铺标识确定出相对应的新主索引中的从索引作为待写入索引。
调用kibana Dev tools,在其中执行迁移脚本,以将主索引中的所有店铺的商品信息迁移到新主索引,本领域技术人员自行实现所述迁移脚本。示范性举例迁移脚本为如下:
POST_reindex{"source":{"index":text_index"},"dest":{"index":"text_index_new"}}
步骤S1540、删除迁移完成后的所述主索引,创建新主索引的别名为所述主索引的主索引名称。
等待主索引中的所有店铺的商品信息均迁移到新主索引后,删除所述主索引,调用kibana Dev tools,在其中执行创建别名脚本,以创建新主索引的别名为所述主索引的名称,本领域技术人员自行实现所述创建别名脚本。示范性举例创建别名脚本为如下:
PUT/text_index_new/_alias/text_index
本领域技术人员应当知晓,当店铺搜索服务被使用触发生成商品信息搜索请求时,该请求仍携带的所述主索引的主索引名称,但是实际上索引调度器会将该主索引名称认为是新主索引的别名,从而知道读取新主索引的新主索引配置,执行相应的新索引下从索引的调度。
本实施例中,通过构建新主索引及其下从索引,将写入主索引的店铺的商品信息重定向至写入新主索引,并将主索引中的所有店铺的商品信息迁移到新主索引,而且删除迁移完成后的主索引,创建新主索引的别名为主索引的主索引名称。可见,能够让上游的店铺搜索服务无感地按照业务所需更新主索引为新索引。
请参阅图9,适应本申请的目的之一而提供的一种索引调度装置,是对本申请的索引调度方法的功能化体现,该装置另一方面,适应本申请的目的之一而提供的一种索引调度装置包括请求获取模块1100、从索引调度模块1200、结果返回模块1300以及结果发送模块1400,其中,请求获取模块1100,用于获取任意店铺搜索服务推送的商品信息搜索请求,所述商品信息搜索请求携带店铺标识和主索引;从索引调度模块1200,用于将所述商品信息搜索请求下发至搜索引擎,由搜索引擎中的索引调度器根据所述店铺标识调度所述主索引下的目标从索引;结果返回模块1300,用于由所述搜索引擎根据所述商品信息搜索请求搜索所述目标从索引,返回请求结果;结果发送模块1400,用于将所述请求结果发送给所述店铺搜索服务,以应答所述商品信息搜索请求。
进一步的实施例中,所述请求获取模块1100之前,包括:第一索引构建子模块,用于在搜索引擎中构建主索引及其下多个从索引;事件响应子模块,用于响应数据源同步事件,获取该事件所指定的店铺的商品信息下发至搜索引擎;索引写入子模块,用于由搜索引擎中的索引调度器根据所述商品信息所属店铺的店铺标识确定出所述主索引下的从索引作为待写入从索引,将所述商品信息写入所述待写入从索引中。
进一步的实施例中,所述结果返回模块1300,包括:请求转发子模块,用于由搜索引擎中的协调节点将所述商品信息搜索请求,转发给所述目标从索引的所有分片分别所在的数据节点;标识返回子模块,用于由所有分片并行搜索出所述商品信息搜索请求所需的部分商品标识及其打分值,每个分片所在的数据节点将相应的部分商品标识及其打分值返回给协调节点;集合产出子模块,用于由所述协调节点对所有的部分商品标识进行数据操作,产出商品标识集合;结果构成子模块,用于由所述协调节点根据商品标识集合中的商品标识访问相应的数据节点读取相应的商品信息构成请求结果。
进一步的实施例中,所述索引构建子模块,包括:信息获取子模块,用于获取主索引配置信息,所述主索引配置信息包括主索引信息、从索引信息,所述主索引信息包括主索引名称和主索引所匹配的调度哈希算法及其算法指定参数,所述从索引信息包括从索引个数其相应的从索引名称。接口调用子模块,用于调用搜索引擎的配置接口,将所述主索引配置信息传递给该配置接口,以驱动其根据所述主索引信息构建主索引,根据所述从索引信息构建相应的从索引。
进一步的实施例中,所述结果发送模块1400,包括:信息确定子模块,用于确定出所述请求结果所包含的每个商品信息中,所述店铺搜索服务为搜索场景下展示所需提供的文本信息;评分确定子模块,用于采用曝光成效模型根据每个商品信息中的文本信息,确定出每个商品信息对应的综合评分;结果发送子模块,用于根据所述综合评分对请求结果中的商品信息进行排序,将排序后的请求结果发送给店铺搜索服务。
进一步的实施例中,所述从索引调度模块1200,包括:配置读取子模块,用于由搜索引擎中的索引调度器读取预设的主索引配置信息,确定主索引配置信息中的算法指定参数为所述店铺标识;从索引确定子模块,用于调用所述主索引配置信息中的调度哈希算法根据所述算法指定参数,确定出目标从索引。
进一步的实施例中,所述结果发送模块1400之后,包括:总量确定子模块,用于确定出所述搜索引擎在每个预设的时间周期内接收的请求数量;下发停止子模块,用于当连续多个所述时间周期对应的请求数量均小于预设阈值时,停止下发商品信息搜索请求至所述搜索引擎;第二索引构建子模块,用于响应从索引数量变更事件,获取业务所需的从索引数量,构建搜索引擎中的新主索引及其下对应该从索引数量的从索引;信息迁移子模块,用于将写入所述主索引的店铺的商品信息重定向至写入新主索引,并将主索引中的所有店铺的商品信息迁移到新主索引;别名设置子模块,用于删除迁移完成后的所述主索引,创建新主索引的别名为所述主索引的主索引名称。
为解决上述技术问题,本申请实施例还提供计算机设备。如图10所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种索引调度方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本申请的索引调度方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行图9中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本申请的索引调度装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
本申请还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本申请任一实施例的索引调度方法的步骤。
本领域普通技术人员可以理解实现本申请上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等计算机可读存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
综上所述,本申请一方面,能够为任意店铺搜索服务提供统一的主索引,根据店铺标识精准地调度主索引下的目标从索引服务于商品信息搜索请求,能够高效地得出请求结果,无需上游服务理解搜索引擎底层中的多个从索引与商品信息搜索请求之间的调用关系,以此来为请求指示多个从索引中的目标从索引进行调用。另一方面,能够让上游服务无感地对主索引中的从索引数量按照业务所需的扩容或缩容。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中开源的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种索引调度方法,其特征在于,包括如下步骤:
获取任意店铺搜索服务推送的商品信息搜索请求,所述商品信息搜索请求携带店铺标识和主索引;
将所述商品信息搜索请求下发至搜索引擎,由搜索引擎中的索引调度器根据所述店铺标识调度所述主索引下的目标从索引;
由所述搜索引擎根据所述商品信息搜索请求搜索所述目标从索引,返回请求结果;
将所述请求结果发送给所述店铺搜索服务,以应答所述商品信息搜索请求。
2.根据权利要求1所述的索引调度方法,其特征在于,获取任意店铺搜索服务推送的商品信息搜索请求之前,包括如下步骤:
在搜索引擎中构建主索引及其下多个从索引;
响应数据源同步事件,获取该事件所指定的店铺的商品信息下发至搜索引擎;
由搜索引擎中的索引调度器根据所述商品信息所属店铺的店铺标识确定出所述主索引下的从索引作为待写入从索引,将所述商品信息写入所述待写入从索引中。
3.根据权利要求1所述的索引调度方法,其特征在于,由所述搜索引擎根据所述商品信息搜索请求搜索所述目标从索引,返回请求结果,包括如下步骤:
由搜索引擎中的协调节点将所述商品信息搜索请求,转发给所述目标从索引的所有分片分别所在的数据节点;
由所有分片并行搜索出所述商品信息搜索请求所需的部分商品标识及其打分值,每个分片所在的数据节点将相应的部分商品标识及其打分值返回给协调节点;
由所述协调节点对所有的部分商品标识进行数据操作,产出商品标识集合;
由所述协调节点根据商品标识集合中的商品标识访问相应的数据节点读取相应的商品信息构成请求结果。
4.根据权利要求2所述的索引调度方法,其特征在于,在搜索引擎中构建主索引及其下多个从索引,包括如下步骤:
获取主索引配置信息,所述主索引配置信息包括主索引信息、从索引信息,所述主索引信息包括主索引名称和主索引所匹配的调度哈希算法及其算法指定参数,所述从索引信息包括从索引个数其相应的从索引名称。
调用搜索引擎的配置接口,将所述主索引配置信息传递给该配置接口,以驱动其根据所述主索引信息构建主索引,根据所述从索引信息构建相应的从索引。
5.根据权利要求1所述的索引调度方法,其特征在于,将所述请求结果发送给所述店铺搜索服务,包括如下步骤:
确定出所述请求结果所包含的每个商品信息中,所述店铺搜索服务为搜索场景下展示所需提供的文本信息;
采用曝光成效模型根据每个商品信息中的文本信息,确定出每个商品信息对应的综合评分;
根据所述综合评分对请求结果中的商品信息进行排序,将排序后的请求结果发送给店铺搜索服务。
6.根据权利要求4所述的索引调度方法,其特征在于,由搜索引擎中的索引调度器根据所述店铺标识调度所述主索引下的目标从索引,包括如下步骤:
由搜索引擎中的索引调度器读取预设的主索引配置信息,确定主索引配置信息中的算法指定参数为所述店铺标识;
调用所述主索引配置信息中的调度哈希算法根据所述算法指定参数,确定出目标从索引。
7.根据权利要求1所述的索引调度方法,其特征在于,将所述请求结果发送给所述店铺搜索服务,以应答所述商品信息搜索请求之后,包括如下步骤:
确定出所述搜索引擎在每个预设的时间周期内接收的请求数量;
当连续多个所述时间周期对应的请求数量均小于预设阈值时,停止下发商品信息搜索请求至所述搜索引擎;
响应从索引数量变更事件,获取业务所需的从索引数量,构建搜索引擎中的新主索引及其下对应该从索引数量的从索引;
将写入所述主索引的店铺的商品信息重定向至写入新主索引,并将主索引中的所有店铺的商品信息迁移到新主索引;
删除迁移完成后的所述主索引,创建新主索引的别名为所述主索引的主索引名称。
8.一种索引调度装置,其特征在于,包括:
请求获取模块,用于获取任意店铺搜索服务推送的商品信息搜索请求,所述商品信息搜索请求携带店铺标识和主索引;
从索引调度模块,用于将所述商品信息搜索请求下发至搜索引擎,由搜索引擎中的索引调度器根据所述店铺标识调度所述主索引下的目标从索引;
结果返回模块,用于由所述搜索引擎根据所述商品信息搜索请求搜索所述目标从索引,返回请求结果;
结果发送模块,用于将所述请求结果发送给所述店铺搜索服务,以应答所述商品信息搜索请求。
9.一种计算机设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至7中任意一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至7中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
CN202410020406.XA 2024-01-05 2024-01-05 索引调度方法及其装置、设备、介质 Pending CN117828157A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410020406.XA CN117828157A (zh) 2024-01-05 2024-01-05 索引调度方法及其装置、设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410020406.XA CN117828157A (zh) 2024-01-05 2024-01-05 索引调度方法及其装置、设备、介质

Publications (1)

Publication Number Publication Date
CN117828157A true CN117828157A (zh) 2024-04-05

Family

ID=90522728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410020406.XA Pending CN117828157A (zh) 2024-01-05 2024-01-05 索引调度方法及其装置、设备、介质

Country Status (1)

Country Link
CN (1) CN117828157A (zh)

Similar Documents

Publication Publication Date Title
US20190266554A1 (en) Cognitive replenishment system
CN110472207A (zh) 表单生成方法和装置
US20190287117A1 (en) Automated receipt parsing to generate recall, warranty, and return notifications
US20180204233A1 (en) Modeling customer demand and updating pricing using customer behavior data
EP3822902A1 (en) Systems and methods for customization of reviews
US11810065B2 (en) Systems and methods for electronic platform for transactions of wearable items
CN111247550A (zh) 用于区块链网络的计算机化交易管理模块
US10943288B2 (en) Cognitive article reception
CN117455579B (zh) 商品推荐干预方法、装置以及介质和设备
CN112749323A (zh) 一种构建用户画像的方法和装置
CN114357280A (zh) 一种信息推送方法、装置、电子设备及计算机可读介质
US11500950B2 (en) Digital search results generation
CA3098792A1 (en) Systems and methods for customization of reviews
CN109902981A (zh) 用于进行数据分析的方法及装置
JP6249158B2 (ja) プログラム、情報処理装置、および方法
US20160275535A1 (en) Centralized system for progressive price management
CN115860428A (zh) 物料自动定单方法及其装置、设备、介质、产品
US20220391746A1 (en) Api optimizer using contextual analysis of interface data exchange
CN117828157A (zh) 索引调度方法及其装置、设备、介质
CN113762994B (zh) 用户运营管理的方法和装置
CN112785324B (zh) 信息处理方法、信息处理装置、电子设备和介质
US20200204514A1 (en) Prioritized messaging system
CN117785448A (zh) 消息调度方法及其装置、设备、介质
US20240185286A1 (en) Data enhancement system and method
US20240202754A1 (en) Method for identifying prospects based on a prospect model

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