搜索服务动态字段存储方法、装置、设备及介质与流程

未命名 09-29 阅读:88 评论:0


1.本技术涉及电商平台领域,尤其涉及一种搜索服务动态字段存储方法、相应的装置、电子设备及计算机可读存储介质。


背景技术:

2.跨境电商是近几年飞速发展的行业,独立站点是跨境电商的一种新的形式,在运营中,自主权高,更加灵活,避免了很多平台规则的制约。在独立站电商平台中的saas后台,搜索服务是独立站重度依赖的核心组件,为追求资源的最大使用率,数以万计的卖家数据是共享搜索服务的。
3.由于独立站建站的开放性,商家可以对商品标题、店铺标题或分类信息等独立站店铺数据进行自定义字段,商家可以自由灵活地增加字段名、字段类型以及字段值以创建自定义字段,同时,消费者用户还可以用这些自定义字段进行检索,当商家无限地增加所述自定义字段时,每增加一个自定义字段都会使整体的索引变大,极其容易造成字段膨胀,影响集群稳定性,而且,当各个独立站店铺之间自定义字段的字段名称相同,而字段类型不同时,该自定义字段将无法写入独立站电商平台的搜索引擎中,独立站店铺之间的自定义字段相互影响。
4.综上,适应商家在增加所述自定义字段时,使整体的索引变大,极其容易造成字段膨胀,影响集群稳定性,以及独立站店铺之间的自定义字段相互影响等问题,本技术人出于解决该问题的考虑做出相应的探索。


技术实现要素:

5.本技术的目的在于解决上述问题而提供一种搜索服务动态字段存储方法、相应的装置、电子设备及计算机可读存储介质。
6.为满足本技术的各个目的,本技术采用如下技术方案:
7.适应本技术的目的之一而提出的一种搜索服务动态字段存储方法,包括如下步骤:
8.响应搜索数据同步事件而获取从上游系统发送的各个独立站店铺数据;
9.解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型,根据所述数据类型确定所述自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性;
10.根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中;
11.响应携带有自定义字段的在线查询指令,确定所述自定义字段在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性和可检索字段名称,根据所述自定义数据属性以及可检索字段名称确定所述自定义字段相对应的字段值。
12.可选的,解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型,根据所述数据类型确定所述自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性的步骤,包括如下步骤:
13.响应字段层级结构生成请求而构建所述自定义字段相对应的字段层级结构,所述字段层级结构包括外层以及内层,所述外层用于标识自定义字段,所述内层包含一个或多个子字段,每个子字段用于存储所述自定义字段的字段名称以及其对应的自定义数据属性的字段值,所述子字段与所述自定义数据属性一一对应。
14.可选的,响应搜索数据同步事件而获取从上游系统发送的各个独立站店铺数据步骤,包括如下步骤:
15.响应定时监控事件而判断所述上游系统发送的各个独立站店铺数据中是否存在自定义字段;
16.若所述上游原始数据中存在自定义字段,则根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中。
17.可选的,根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中的步骤,包括如下步骤:
18.响应自定义字段存储事件而采用键-值数据结构对所述自定义字段的字段值以及其相对应的所述自定义数据属性进行编码,确定预设格式的字符串或字符串数组;
19.将所述预设格式的字符串或字符串数组存储在所述全文搜索引擎中间件的字段层级结构指定的子字段的自定义字段中。
20.可选的,解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型的步骤,包括如下步骤:
21.响应自定义字段解析指令,调用预设函数解析各个独立站店铺数据相对应的自定义字段;
22.获取并返回所述自定义字段的字段值相对应的数据类型、字段名称以及字段值。
23.可选的,响应携带有自定义字段的在线查询指令的步骤,包括如下步骤:
24.响应携带有自定义商品关键词的在线查询指令,解析确定所述在线查询指令中的自定义商品关键词以及其相对应的数据类型;
25.根据所述自定义商品关键词相对应的数据类型确定所述自定义商品关键词在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性以及可检索字段名称;
26.基于所述自定义商品关键词相对应的自定义数据属性以及可检索字段名称在全文搜索引擎中间件指定的子字段中进行检索,查找到与所述自定义商品关键词相匹配的字段值。
27.可选的,所述独立站店铺数据包括如下数据的一种或多种:商品标题、店铺标题或商品价格。
28.适应本技术的另一目的而提供的一种搜索服务动态字段存储装置,包括:
29.数据获取模块,设置为响应搜索数据同步事件而获取从上游系统发送的各个独立站店铺数据;
30.字段解析模块,设置为解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型,根据所述数据类型确定所述自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性;
31.字段存储模块,设置为根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中;
32.在线查询模块,设置为响应携带有自定义字段的在线查询指令,确定所述自定义字段在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性和可检索字段名称,根据所述自定义数据属性以及可检索字段名称确定所述自定义字段相对应的字段值。
33.适应本技术的另一目的而提供的一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本技术所述搜索服务动态字段存储方法的步骤。
34.适应本技术的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述搜索服务动态字段存储方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
35.相对于现有技术,本技术针对商家在增加所述自定义字段时,使整体的索引变大,极其容易造成字段膨胀,影响集群稳定性,以及独立站店铺之间的自定义字段相互影响等问题,获取并解析独立站店铺数据中的自定义字段,确定该自定义字段相对应的数据类型,从而确定该自定义字段在所述全文搜索引擎中间件(elasticsearch)的字段层级结构指定的子字段,在该字段层级结构各个子字段以预设格式存储有各个独立站店铺数据的可检索字段中的所有字段值以及与该字段值相对应的自定义数据属性,通过全文搜索引擎中间件(elasticsearch)的字段层级结构的同一个子字段中存储不同独立站店铺数据的可检索字段中的所有字段值对应的自定义数据属性,避免了不同的独立站店铺使用的自定义字段的字段名称相同,而字段值类型不同时,该自定义字段将无法写入独立站电商平台的搜索引擎中,避免各个独立站店铺不同数据类型的自定义字段而导致索引叠加放大的问题,使索引保持在常量级别,从而增加自定义字段时使用的索引空间而不再产生无意义的空间占用,极大地节省了独立站电商平台的搜索服务的内存资源,通过全文搜索引擎中间件(elasticsearch)的字段层级结构的同一个子字段中存储不同独立站店铺数据的可检索字段中的所有字段值对应的自定义数据属性,包括但不限于如下有益效果:
36.其一,避免字段爆炸风险,字段数量的最大值等同于全文搜索引擎中间件(elasticsearch)可枚举出来的字段类型数量;
37.其二,无检索方式的限制,可以支持任何全文搜索引擎中间件(elasticsearch)支持的检索方式;
38.其三,结构通用,避免不同独立站店铺拥有相同的自定义字段而互相干扰的问题;
39.其四,迭代高效,如果无新的字段类型增加,该结构能够一直使用,若需要增加新的字段数据类型时,仅仅需要同步增加一个新的类型的处理流即可。
40.进一步地,在对独立站店铺数据进行检索时,通过对该独立站店铺数据中的自定义字段进行解析,得到所匹配的字段值的自定义数据属性,实现动态地获取自定义数据属性,从而在对独立站店铺数据中的自定义字段添加自定义数据属性时,大大节省搜索引擎
communications service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;pda(personal digital assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(global positioning system,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobile internet device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
54.本技术所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯若依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
55.需要指出的是,本技术所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本技术的网络部署方式的实施方式。
56.本技术的技术方案以电商服务平台的运行环境为其应用环境,电商平台可以为各个商家实现其相应的独立站,以运行其相应的在线店铺,为商家提供相应的商务管理引擎实例,供商家建立、维护、运行其在一个或多个独立站中的一个或多个在线店铺。商务管理引擎实例可以用于一个或多个在线店铺的内容管理、任务自动化和数据管理,可以通过接口或内建组件等方式配置在线店铺的各种具体业务流程以支持商务活动的实现。独立站是具有跨境服务功能的电商平台的基础设施,商户可以基于独立站较为集中自主地维护其在线店铺。独立站通常具有商家专用的域名和存储空间,不同独立站之间具有相对独立性,电商平台可以为海量的独立站提供标准化或个性化的技术支持,使得商家用户可以定制出自身相适应的商务管理引擎实例,并使用这个商务管理引擎实例来维护其拥有的一个或多个在线店铺。
57.所述电商服务平台,可以是开放独立站点服务的电商服务平台,典型的,例如跨境电商服务平台。此类平台由于需要考虑全球各地区之间的网络环境以及各商家之间的独立性,而通过将每个商家的店铺配置为一个个的独立站点,从而使电商服务平台服务于大量的此类独立站点。所述独立站店铺是指处于电商服务平台中的电商独立站,所述独立站店铺与传统电商平台中的电商店铺不同,独立站店铺拥有独立的电商在线服务,可将独立站店铺看作一个传统电商平台,独立站店铺的买家用户为自身所拥有的用户群体,区别于传统电商平台中各个商铺的买家用户为平台所拥有的用户群体,独立站电商平台会向平台下的电商独立站提供相应的网络电商功能,在独立站运营后台,搜索服务是独立站重度依赖的核心组件,数以万计的独立站店铺是共享搜索服务的,为消费者用户提供准确、实时的独
立站店铺数据的检索能力,其承载着较为繁重的数据检出任务,在独立站电商平台领域,由于独立站建站的开放性,商家可以对商品信息、商品标题、店铺标题或分类信息等独立站店铺数据进行自定义字段,商家可以自由灵活地增加字段名、字段类型以及字段值以创建自定义字段,同时,消费者用户还可以用这些自定义字段进行检索,在独立站电商平台的搜索引擎中,会对各个独立站店铺中的自定义字段信息进行处理,生成其相对应的索引,当消费者用户查找各个独立站店铺数据时,可直接查找该索引的可检索字段,以快速查找到与所述自定义字段相对应的独立站店铺数据,不难理解,当商家无限地增加所述自定义字段时,每增加一个自定义字段都会使整体的索引变大,极其容易造成字段膨胀,影响集群稳定性,而且,当各个独立站店铺之间自定义字段的字段名称相同,而字段类型不同时,该自定义字段将无法写入独立站电商平台的搜索引擎中,独立站店铺之间存在相互影响。
58.请参阅图1,本技术的搜索服务动态字段存储方法在其一个实施例中,包括如下步骤:
59.步骤s10、响应搜索数据同步事件而获取从上游系统发送的各个独立站店铺数据;
60.所述独立站店铺数据包括但不限于:字、词、句子或图片等,所述独立站店铺数据可以是商品标题、店铺标题或商品价格等等,独立站电商平台的搜索服务中搜索数据同步服务可以响应搜索数据同步事件而获取从上游系统源源不断发送的各个独立站店铺数据相对应的原始数据,所述搜索数据同步服务用于负责在接收上游系统的各个独立站店铺数据原始数据,调用所述搜索服务中的字段类型识别及映射公共服务将各个独立站店铺数据相对应的原始数据按照其相对应的数据类型进行归类后,以数组格式分别写入全文搜索引擎中间件(elasticsearch)的字段层级结构对应的子字段中。
61.步骤s20、解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型,根据所述数据类型确定所述自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性;
62.独立站电商平台的搜索服务中的字段类型识别及映射公共服务可以解析并枚举各个独立站店铺数据相对应的自定义字段的字段值存在的数据类型,所述字段类型识别及映射公共服务用于负责在搜索数据同步时,对上游系统源源不断发送的各个独立站店铺数据相对应的原始数据按照其对应的数据类型进行归类以及检索时提供依据字段数据类型组装成最终字段名称的功能,根据所述自定义字段的数据类型确定所述自定义字段在全文搜索引擎中间件(elasticsearch)的字段层级结构中的自定义数据属性,所述数据类型包括字符串、整形以及浮点型等等,所述自定义数据属性与所述独立站店铺数据相对应的自定义字段的字段值的数据类型相对应,所述自定义数据属性包含一个或多个数据类型,例如,枚举出各个独立站店铺数据的数据类型有字符串、整形以及浮点型三种,根据所述各个独立站店铺数据的数据类型可以将其映射为全文搜索引擎中间件(elasticsearch)的自定义数据属性分别为keyword(字符串)、long(整形)以及double(浮点型),在全文搜索引擎中间件(elasticsearch)的字段层级结构中作进一步存储,需要说明的是,此处举例的自定义数据属性仅为示例性的,并不构成对本发明的限制,本领域技术人员可以理解,该自定义数据属性可以命名为与其他可检索字段的自定义数据属性相区别的任意名称。
63.在一些实施例中,所述搜索服务中的字段类型识别及映射公共服务解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型,根据所述数据类型确定
所述自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性的步骤,包括如下步骤:所述搜索服务中的字段类型识别及映射公共服务响应字段层级结构生成请求而构建所述自定义字段相对应的字段层级结构,所述全文搜索引擎中间件(elasticsearch)的字段层级结构可以采用如下结构:
64.所述字段层级结构包括外层以及内层,所述外层用于标识自定义字段,所述内层包含一个或多个子字段,每个子字段用于存储所述自定义字段的字段名称以及其对应的自定义数据属性的字段值,所述子字段与所述自定义数据属性一一对应。
65.步骤s30、根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中;
66.在根据所述各个独立站店铺数据相对应的自定义字段的数据类型确定所述自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性后,基于上述枚举的各个独立站店铺数据中的自定义字段的字段值的数据类型,确定所述自定义字段在全文搜索引擎中间件(elasticsearch)的字段层级结构对应的自定义数据属性,根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,所述字段层级结构的子字段表征自定义字段的一种自定义数据属性,所述自定义属性包含一个或多个数据类型,所述字段层级结构的一个子字段中包含一个或多个自定义字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中,所述搜索服务中的搜索数据同步服务将所述独立站店铺数据中的自定义字段以数组格式分别写入全文搜索引擎中间件(elasticsearch)的字段层级结构对应的子字段中,不难理解,所述全文搜索引擎中间件(elasticsearch)的字段层级结构的子字段中的自定义数据属性是按照所述独立站店铺数据中的自定义字段相对应的数据类型进行分类的,按照预先分类好的自定义属性将各个数据类型的独立站店铺数据中的自定义字段写入至所述全文搜索引擎中间件(elasticsearch)的字段层级结构的子字段中。
67.在一些实施例中,请参阅图2,所述全文搜索引擎中间件(elasticsearch)的字段层级结构可以包含外层以及内层等,其中,所述外层metafield字段用于标识自定义字段,所述内层存在以上枚举的各个独立站店铺数据的数据类型的子字段,每一个子字段可以是nested结构等等,所述nested结构中存在键-值(key-value)两个字段,所述字段名称key的类型为keyword(字符串),其用于存储所述自定义字段的字段名称,所述字段值value的类型与其所述外层定义的字段名含义绑定,所述字段值value的类型根据所述独立站店铺数据的数据类型分类设置为全文搜索引擎中间件(elasticsearch)的自定义数据属性keyword(字符串)、long(整型)以及double(浮点型),用于存储不同的数据类型的自定义字段的字段值。
68.步骤s40、响应携带有自定义字段的在线查询指令,确定所述自定义字段在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性和可检索字段名称,根据所述自定义数据属性以及可检索字段名称确定所述自定义字段相对应的字段值。
69.所述搜索服务中的在线查询服务可以负责组装最终的检索语句,所述在线查询服务可以通过调用所述搜索服务中的字段类型识别及映射公共服务确定所述独立站店铺数据中的自定义字段在所述全文搜索引擎中间件(elasticsearch)的字段层级结构对应的子
字段中的可检索字段名称以及自定义数据属性,基于最终的可检索字段名称以及自定义数据属性通过全文搜索引擎中间件(elasticsearch)提供的nested检索方式,根据该可检索字段名称以及自定义数据属性在所述全文搜索引擎中间件(elasticsearch)的字段层级结构指定的子字段获取所述自定义字段相匹配的字段值,基于所述自定义字段相对应的字段值去访问所述搜索服务中的搜索引擎确定其对应的商品数据。
70.由上述实施例可知,相对于现有技术,本技术针对商家在增加所述自定义字段时,使整体的索引变大,极其容易造成字段膨胀,影响集群稳定性,以及独立站店铺之间的自定义字段相互影响等问题,获取并解析独立站店铺数据中的自定义字段,确定该自定义字段相对应的数据类型,从而确定该自定义字段在所述全文搜索引擎中间件(elasticsearch)的字段层级结构指定的子字段,在该字段层级结构各个子字段以预设格式存储有各个独立站店铺数据的可检索字段中的所有字段值以及与该字段值相对应的自定义数据属性,通过全文搜索引擎中间件(elasticsearch)的字段层级结构的同一个子字段中存储不同独立站店铺数据的可检索字段中的所有字段值对应的自定义数据属性,避免了不同的独立站店铺使用的自定义字段的字段名称相同,而字段值类型不同时,该自定义字段将无法写入独立站电商平台的搜索引擎中,避免各个独立站店铺不同数据类型的自定义字段而导致索引叠加放大的问题,使索引保持在常量级别,从而增加自定义字段时使用的索引空间而不再产生无意义的空间占用,极大地节省了独立站电商平台的搜索服务的内存资源,通过全文搜索引擎中间件(elasticsearch)的字段层级结构的同一个子字段中存储不同独立站店铺数据的可检索字段中的所有字段值对应的自定义数据属性,包括但不限于如下有益效果:
71.其一,避免字段爆炸风险,字段数量的最大值等同于全文搜索引擎中间件(elasticsearch)可枚举出来的字段类型数量;
72.其二,无检索方式的限制,可以支持任何全文搜索引擎中间件(elasticsearch)支持的检索方式;
73.其三,结构通用,避免不同独立站店铺拥有相同的自定义字段而互相干扰的问题;
74.其四,迭代高效,如果无新的字段类型增加,该结构能够一直使用,若需要增加新的字段数据类型时,仅仅需要同步增加一个新的类型的处理流即可。
75.进一步地,在对独立站店铺数据进行检索时,通过对该独立站店铺数据中的自定义字段进行解析,得到所匹配的字段值的自定义数据属性,实现动态地获取自定义数据属性,从而在对独立站店铺数据中的自定义字段添加自定义数据属性时,大大节省搜索引擎中的索引所占用的服务器内存资源。
76.在本技术任意实施例的基础上,请参阅图3,响应搜索数据同步事件而获取从上游系统发送的各个独立站店铺数据步骤,包括如下步骤:
77.步骤s101、响应定时监控事件而判断所述上游系统发送的各个独立站店铺数据中是否存在自定义字段;
78.独立站电商平台的搜索服务中搜索数据同步服务响应搜索数据同步事件而获取从上游系统源源不断发送的各个独立站店铺数据相对应的原始数据,将各个独立站店铺数据写入至所述全文搜索引擎中间件(elasticsearch)中,同时,所述搜索数据同步服务响应定时监控事件判断所述独立站店铺数据中是否存在自定义字段。
79.步骤s103、若所述上游原始数据中存在自定义字段,则根据所述自定义字段的字
段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中。
80.当上游系统向所述搜索服务中的全文搜索引擎中间件(elasticsearch)同步各个独立站店铺数据时,若被同步至所述全文搜索引擎中间件(elasticsearch)的各个独立站店铺数据中包含自定义字段,根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,所述字段层级结构的子字段表征自定义字段的一种自定义数据属性,所述字段层级结构的一个子字段中包含一个或多个自定义字段,则按照指定编码方式将所述独立站店铺数据中的自定义字段的字段名称、字段值写入至所述字段层级结构的与该字段值相对应的自定义数据属性的子字段中,所述全文搜索引擎中间件(elasticsearch)的字段层级结构的子字段中的自定义数据属性是按照所述独立站店铺数据中的自定义字段的字段值相对应的数据类型进行分类的,所述自定义数据属性包含一个或多个数据类型。
81.在一些实施例中,所述自定义字段的数据类型包括字符串类型、整形以及浮点型等,从而该自定义字段对应的所述字段层级结构的子字段中可用于存储所述自定义字段的字段值及其对应的自定义数据属性按指定格式组合而成的字符串等等。
82.由上述实施例可知,本实施例通过响应定时监控事件而判断所述上游系统发送的各个独立站店铺数据中是否存在自定义字段,根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中,能够避免字段爆炸风险,避免各个独立站店铺不同数据类型的自定义字段而导致索引叠加放大的问题,使索引保持在常量级别,从而增加自定义字段时使用的索引空间而不再产生无意义的空间占用,极大地节省了独立站电商平台的搜索服务的内存资源,字段数量的最大值等同于全文搜索引擎中间件(elasticsearch)可枚举出来的字段类型数量。
83.在本技术任意实施例的基础上,请参阅图4,根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中的步骤,包括如下步骤:
84.步骤s301、响应自定义字段存储事件而采用键-值数据结构对所述自定义字段的字段值以及其相对应的所述自定义数据属性进行编码,确定预设格式的字符串或字符串数组;
85.当上游系统向所述搜索服务中的全文搜索引擎中间件(elasticsearch)同步各个独立站店铺数据时,若被同步至所述全文搜索引擎中间件(elasticsearch)的各个独立站店铺数据中的自定义字段包含待添加自定义数据属性的一个或多个字段值,则采用键-值(key-value)数据结构对被同步至所述全文搜索引擎中间件(elasticsearch)的各个独立站店铺数据中的自定义字段的该一个或多个字段值以及与该一个或多个字段值对应的自定义数据属性进行编码,得到指定格式的字符串或字符串数组,并将该字符串或字符串数组写入至所述全文搜索引擎中间件的字段层级结构指定的子字段中。
86.步骤s303、将所述预设格式的字符串或字符串数组存储在所述全文搜索引擎中间件的字段层级结构指定的子字段的自定义字段中。
87.在确定预设格式的字符串或字符串数组之后,当被同步至所述全文搜索引擎中间件(elasticsearch)的各个独立站店铺数据中的自定义字段的字段值为一个时,可采用键-值(key-value)数据结构对被同步至所述全文搜索引擎中间件(elasticsearch)的各个独立站店铺数据中的自定义字段的字段值以及与该字段值相对应的自定义数据属性进行编码,得到指定格式的字符串,然后将该指定格式的字符串保存在所述全文搜索引擎中间件(elasticsearch)的字段层级结构指定的子字段中;当被同步至所述全文搜索引擎中间件(elasticsearch)的各个独立站店铺数据中的自定义字段的字段值为多个时,则可采用键-值(key-value)数据结构对被同步至所述全文搜索引擎中间件(elasticsearch)的各个独立站店铺数据中的自定义字段的多个字段值以及与该多个字段值相对应的自定义数据属性进行编码,得到指定格式的字符串数组,然后将该指定格式的字符串数组保存在所述全文搜索引擎中间件(elasticsearch)的字段层级结构指定的子字段中。
88.由上述实施例可知,采用键-值(key-value)数据结构对被同步至所述全文搜索引擎中间件(elasticsearch)的各个独立站店铺数据中的自定义字段的该一个或多个字段值以及与该一个或多个字段值对应的自定义数据属性进行编码,得到指定格式的字符串或字符串数组,并将该字符串或字符串数组写入至所述全文搜索引擎中间件的字段层级结构指定的子字段中,通过全文搜索引擎中间件(elasticsearch)的字段层级结构的同一个子字段中存储不同独立站店铺数据的可检索字段中的所有字段值对应的自定义数据属性,避免了不同的独立站店铺使用的自定义字段的字段名称相同,而字段值类型不同时,该自定义字段将无法写入独立站电商平台的搜索引擎中,避免各个独立站店铺不同数据类型的自定义字段而导致索引叠加放大的问题,使索引保持在常量级别,从而增加自定义字段时使用的索引空间而不再产生无意义的空间占用,极大地节省了独立站电商平台的搜索服务的内存资源。
89.在本技术任意实施例的基础上,请参阅图5,解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型的步骤,包括如下步骤:
90.步骤s201、响应自定义字段解析指令,调用预设函数解析各个独立站店铺数据相对应的自定义字段;
91.独立站电商平台的搜索服务中的字段类型识别及映射公共服务可以调用预设函数解析并枚举各个独立站店铺数据相对应的自定义字段的字段值存在的数据类型,所述字段类型识别及映射公共服务用于负责在搜索数据同步时,对上游系统源源不断发送的各个独立站店铺数据相对应的原始数据按照其对应的数据类型进行归类以及检索时提供依据字段数据类型组装成最终字段名称的功能,根据所述自定义字段的字段值的数据类型确定所述自定义字段在全文搜索引擎中间件(elasticsearch)的字段层级结构中的自定义数据属性。
92.步骤s203、获取并返回所述自定义字段的字段值相对应的数据类型、字段名称以及字段值。
93.独立站电商平台的搜索服务中的字段类型识别及映射公共服务可以调用预设函数解析并枚举各个独立站店铺数据相对应的自定义字段的字段值存在的数据类型之后,获取并返回所述自定义字段的字段值相对应的数据类型、字段名称以及字段值。
94.在本技术任意实施例的基础上,请参阅图6,响应携带有自定义字段的在线查询指
令的步骤,包括如下步骤:
95.步骤s401、响应携带有自定义商品关键词的在线查询指令,解析确定所述在线查询指令中的自定义商品关键词以及其相对应的数据类型;
96.所述搜索服务中的在线查询服务响应携带有自定义商品关键词的在线查询指令,调用所述搜索服务中的字段类型识别及映射公共服务解析确定所述在线查询指令中的自定义商品关键词以及其相对应的数据类型。
97.步骤s403、根据所述自定义商品关键词相对应的数据类型确定所述自定义商品关键词在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性以及可检索字段名称;
98.所述搜索服务中的字段类型识别及映射公共服务在确定所述在线查询指令中的自定义商品关键词以及其相对应的数据类型之后,根据所述自定义商品关键词相对应的数据类型确定所述自定义商品关键词在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性以及可检索字段名称。
99.步骤s405、基于所述自定义商品关键词相对应的自定义数据属性以及可检索字段名称在全文搜索引擎中间件指定的子字段中进行检索,查找到与所述自定义商品关键词相匹配的字段值。
100.在确定所述自定义商品关键词在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性以及可检索字段名称之后,所述搜索服务中的在线查询服务基于所述自定义商品关键词相对应的自定义数据属性以及可检索字段名称在全文搜索引擎中间件指定的子字段中进行检索,查找到与所述自定义商品关键词相匹配的字段值,基于所述自定义商品关键词相对应的字段值去访问所述搜索服务中的搜索引擎确定其对应的商品数据。
101.由上述实施例可知,在对独立站店铺数据进行检索时,通过对该独立站店铺数据中的自定义字段进行解析,得到所匹配的字段值的自定义数据属性,实现动态地获取自定义数据属性,从而在对独立站店铺数据中的自定义字段添加自定义数据属性时,大大节省搜索引擎中的索引所占用的服务器内存资源。
102.请参阅图7,适应本技术的目的之一而提供的一种搜索服务动态字段存储装置,包括数据获取模块1100、字段解析模块1200、字段存储模块1300以及在线查询模块1400。其中,数据获取模块1100,设置为响应搜索数据同步事件而获取从上游系统发送的各个独立站店铺数据;字段解析模块1200,设置为解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型,根据所述数据类型确定所述自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性;字段存储模块1300,设置为根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中;在线查询模块1400,设置为响应携带有自定义字段的在线查询指令,确定所述自定义字段在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性和可检索字段名称,根据所述自定义数据属性以及可检索字段名称确定所述自定义字段相对应的字段值。
103.在本技术任意实施例的基础上,所述字段解析模块1200,还包括:
104.字段结构构建单元,设置为响应字段层级结构生成请求而构建所述自定义字段相对应的字段层级结构,所述字段层级结构包括外层以及内层,所述外层用于标识自定义字
段,所述内层包含一个或多个子字段,每个子字段用于存储所述自定义字段的字段名称以及其对应的自定义数据属性的字段值,所述子字段与所述自定义数据属性一一对应。
105.在本技术任意实施例的基础上,所述数据获取模块1100,还包括:
106.字段监控单元,设置为响应定时监控事件而判断所述上游系统发送的各个独立站店铺数据中是否存在自定义字段,若所述上游原始数据中存在自定义字段,则根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中。
107.在本技术任意实施例的基础上,所述字段存储模块1300,包括:
108.字段编码单元,设置为响应自定义字段存储事件而采用键-值数据结构对所述自定义字段的字段值以及其相对应的所述自定义数据属性进行编码,确定预设格式的字符串或字符串数组;
109.存储单元,设置为将所述预设格式的字符串或字符串数组存储在所述全文搜索引擎中间件的字段层级结构指定的子字段的自定义字段中。
110.在本技术任意实施例的基础上,所述字段解析模块1200,包括:
111.解析单元,设置为响应自定义字段解析指令,调用预设函数解析各个独立站店铺数据相对应的自定义字段;
112.获取单元,设置为获取并返回所述自定义字段的字段值相对应的数据类型、字段名称以及字段值。
113.在本技术任意实施例的基础上,所述在线查询模块1400,包括:
114.查询指令解析单元,设置为响应携带有自定义商品关键词的在线查询指令,解析确定所述在线查询指令中的自定义商品关键词以及其相对应的数据类型;
115.属性确定单元,设置为根据所述自定义商品关键词相对应的数据类型确定所述自定义商品关键词在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性以及可检索字段名称;
116.检索单元,设置为基于所述自定义商品关键词相对应的自定义数据属性以及可检索字段名称在全文搜索引擎中间件指定的子字段中进行检索,查找到与所述自定义商品关键词相匹配的字段值。
117.在本技术任意实施例的基础上,请参阅图8,本技术的另一实施例还提供一种电子设备,所述电子设备可由计算机设备实现,如图8所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种搜索服务动态字段存储方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本技术的搜索服务动态字段存储方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或
者具有不同的部件布置。
118.本实施方式中处理器用于执行图7中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本技术的搜索服务动态字段存储装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
119.本技术还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本技术任一实施例所述搜索服务动态字段存储方法的步骤。
120.本技术还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被一个或多个处理器执行时实现本技术任一实施例所述搜索服务动态字段存储方法的步骤。
121.本领域普通技术人员可以理解实现本技术上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等计算机可读存储介质,或随机存储记忆体(random access memory,ram)等。
122.以上所述仅是本技术的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
123.综上所述,在对独立站店铺数据进行检索时,通过对该独立站店铺数据中的自定义字段进行解析,得到所匹配的字段值的自定义数据属性,实现动态地获取自定义数据属性,从而在对独立站店铺数据中的自定义字段添加自定义数据属性时,大大节省搜索引擎中的索引所占用的服务器内存资源。

技术特征:
1.一种搜索服务动态字段存储方法,其特征在于,包括如下步骤:响应搜索数据同步事件而获取从上游系统发送的各个独立站店铺数据;解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型,根据所述数据类型确定所述自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性;根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中;响应携带有自定义字段的在线查询指令,确定所述自定义字段在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性和可检索字段名称,根据所述自定义数据属性以及可检索字段名称确定所述自定义字段相对应的字段值。2.根据权利要求1所述的搜索服务动态字段存储方法,其特征在于,解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型,根据所述数据类型确定所述自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性的步骤,包括如下步骤:响应字段层级结构生成请求而构建所述自定义字段相对应的字段层级结构,所述字段层级结构包括外层以及内层,所述外层用于标识自定义字段,所述内层包含一个或多个子字段,每个子字段用于存储所述自定义字段的字段名称以及其对应的自定义数据属性的字段值,所述子字段与所述自定义数据属性一一对应。3.根据权利要求1所述的搜索服务动态字段存储方法,其特征在于,响应搜索数据同步事件而获取从上游系统发送的各个独立站店铺数据步骤,包括如下步骤:响应定时监控事件而判断所述上游系统发送的各个独立站店铺数据中是否存在自定义字段;若所述上游原始数据中存在自定义字段,则根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中。4.根据权利要求1所述的搜索服务动态字段存储方法,其特征在于,根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中的步骤,包括如下步骤:响应自定义字段存储事件而采用键-值数据结构对所述自定义字段的字段值以及其相对应的所述自定义数据属性进行编码,确定预设格式的字符串或字符串数组;将所述预设格式的字符串或字符串数组存储在所述全文搜索引擎中间件的字段层级结构指定的子字段的自定义字段中。5.根据权利要求1所述的搜索服务动态字段存储方法,其特征在于,解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型的步骤,包括如下步骤:响应自定义字段解析指令,调用预设函数解析各个独立站店铺数据相对应的自定义字段;获取并返回所述自定义字段的字段值相对应的数据类型、字段名称以及字段值。
6.根据权利要求1所述的搜索服务动态字段存储方法,其特征在于,响应携带有自定义字段的在线查询指令的步骤,包括如下步骤:响应携带有自定义商品关键词的在线查询指令,解析确定所述在线查询指令中的自定义商品关键词以及其相对应的数据类型;根据所述自定义商品关键词相对应的数据类型确定所述自定义商品关键词在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性以及可检索字段名称;基于所述自定义商品关键词相对应的自定义数据属性以及可检索字段名称在全文搜索引擎中间件指定的子字段中进行检索,查找到与所述自定义商品关键词相匹配的字段值。7.根据权利要求1至6任意一项所述的搜索服务动态字段存储方法,其特征在于,所述独立站店铺数据包括如下数据的一种或多种:商品标题、店铺标题或商品价格。8.一种搜索服务动态字段存储装置,其特征在于,包括:数据获取模块,设置为响应搜索数据同步事件而获取从上游系统发送的各个独立站店铺数据;字段解析模块,设置为解析并枚举所述各个独立站店铺数据相对应的自定义字段的字段值的数据类型,根据所述数据类型确定所述自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性;字段存储模块,设置为根据所述自定义字段的字段值以及与所述字段值相对应的自定义数据属性确定其对应的所述字段层级结构的子字段,并将所述自定义字段的字段名称以及字段值写入至所述字段层级结构的子字段中;在线查询模块,设置为响应携带有自定义字段的在线查询指令,确定所述自定义字段在所述全文搜索引擎中间件的字段层级结构中的自定义数据属性和可检索字段名称,根据所述自定义数据属性以及可检索字段名称确定所述自定义字段相对应的字段值。9.一种电子设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至7中任意一项所述的方法的步骤。10.一种计算机可读存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至7中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。

技术总结
本申请涉及搜索服务动态字段存储方法、装置、设备及介质,方法包括:获取从上游发送的各个独立站店铺数据;解析并枚举各个独立站店铺数据相对应的自定义字段的数据类型,根据数据类型确定自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性;根据自定义字段的字段值以及与字段值相对应的自定义数据属性确定其对应的字段层级结构的子字段,并将自定义字段的字段名称以及字段值写入至字段层级结构的子字段中;确定自定义字段在全文搜索引擎中间件的字段层级结构中的自定义数据属性和可检索字段名称,根据自定义数据属性以及可检索字段名称确定自定义字段相对应的字段值。本申请解决了独立站的自定义字段容易造成字段膨胀等问题。造成字段膨胀等问题。造成字段膨胀等问题。


技术研发人员:庞晓磊
受保护的技术使用者:广州商研网络科技有限公司
技术研发日:2023.06.30
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐