CN114969536A - 搜索方法、装置、电子设备及存储介质 - Google Patents
搜索方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114969536A CN114969536A CN202210633388.3A CN202210633388A CN114969536A CN 114969536 A CN114969536 A CN 114969536A CN 202210633388 A CN202210633388 A CN 202210633388A CN 114969536 A CN114969536 A CN 114969536A
- Authority
- CN
- China
- Prior art keywords
- category
- target
- target object
- matching
- identification information
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Abstract
本公开提供了搜索方法、装置、电子设备及存储介质,涉及计算机技术领域,尤其涉及云计算、大数据、智能搜索技术领域。具体实现方案为:根据目标请求中的目标对象的标识信息和目标类别的标识信息,在多级缓存中搜索目标对象和目标类别的匹配关系;在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系。根据本公开实施例的方案,可以提升搜索效率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及云计算、大数据、智能搜索技术领域。
背景技术
为了准确的为目标对象进行个性化信息推送,通常需要知道目标对象所属的类别,从而实现可以基于目标对象的类别确定和选择个性化推送的具体内容。为了确定目标对象的类别,需要基于目标对象的信息进行类别搜索确认,从而获知目标对象所属的类别。
发明内容
本公开提供了一种搜索方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种搜索方法,包括:
根据目标请求中的目标对象的标识信息和目标类别的标识信息,在多级缓存中搜索目标对象和目标类别的匹配关系;以及
在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系。
根据本公开的另一方面,提供了一种搜索装置,包括:
第一搜索模块,用于根据目标请求中的目标对象的标识信息和目标类别的标识信息,在多级缓存中搜索目标对象和目标类别的匹配关系;以及
第二搜索模块,用于在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开中任一实施例的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开中任一实施例的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
根据本公开实施例的方案,可以提升搜索效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的搜索方法的流程示意图;
图2是根据本公开实施例的搜索方法的应用场景示意图;
图3是根据本公开另一实施例的搜索方法的流程示意图;
图4是根据本公开另一实施例的搜索方法的流程示意图;
图5是根据本公开另一实施例的搜索方法的流程示意图;
图6是根据本公开实施例的搜索装置的结构示意图;
图7是用来实现本公开实施例的搜索方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开的实施方式提供一种搜索方法,如图1所示,其为本实施例的搜索方法的流程图,该方法可以包括以下步骤:
S101:根据目标请求中的目标对象的标识信息和目标类别的标识信息,在多级缓存中搜索目标对象和目标类别的匹配关系。以及
S102:在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系。
需要说明的是,目标类别可以理解为定义的任意类别,该类别的定义规则可以根据需要进行调整。目标对象可以理解为符合某一类别规则的人、事、物等。例如,目标对象可以是消费者,目标类别可以是高消费人群、低消费人群、会员人员、非会员人群、青年人群、老年人群等。又如,目标对象是智能终端,目标类别可以是高性能智能终端、大容量智能终端、搭载某功能的智能终端等。
目标对象的标识信息可以包括id(Identity document,身份标识号)或uid(UserIdentification,用户身份证明)。目标类别的标识信息可以包括id或package_id(程序包身份标识号)。标识信息用于表征目标对象和目标类别,只要能够通过标识信息确定对应的目标对象和目标类别即可,具体采用的标识信息可以根据需要进行调整,在此不做具体限定。
目标对象和目标类别的匹配关系,可以理解为目标对象是否可以归属于该目标类别。
多级缓存可以包括至少两级的缓存。每级缓存可以采用相同缓存结构或不同结构。多级缓存的每级缓存中均存储有不同对象和不同类别之间的匹配关系的数据。根据缓存的需要,每级缓存中还可以存储有数据存入的时间戳信息。多级缓存中的各级缓存可以顺次执行搜索任务。例如,多级缓存包括第一级缓存、第二级缓存和第三级缓存,先从第一级缓存中搜索目标对象和目标类别的匹配关系,若未搜索到,则再从第二级缓存中搜索目标对象和目标类别的匹配关系,若仍未搜索到,则继续从第三级缓存中搜索目标对象和目标类别的匹配关系。多级缓存中的各级缓存还可以并行执行搜索任务。例如,多级缓存包括第一缓存和第二缓存,第一缓存和第二缓存同时执行搜索任务,再任一缓存搜索到目标对象和目标类别的匹配关系的情况下,其余缓存则停止搜索。
在多级缓存中搜索目标对象和目标类别的匹配关系可以理解为:在多级缓存的每级缓存的缓存数据中查询是否包含有目标对象和目标类别关联在一起的缓存数据。若包含,则确定目标对象和目标类别存在匹配关系,即目标对象可以归属于目标类别。若不包含,则不能确定目标对象和目标类别存在匹配关系。
搜索引擎可以采用现有技术中的任意搜索引擎,在此不做具体限定,只要能够利用搜索引擎确定目标对象和目标类别是都具有匹配关系即可。
根据本公开实施例的方案,通过多级缓存和搜索引擎相结合的搜索方式,可以满足高并发请求场景的应用,当有多个目标请求需要搜索时,仍能够保证低延时反馈,提高了搜索性能和搜索效率。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102,还可以包括:
在多级缓存中搜索到目标对象和目标类别的匹配关系的情况下,确定目标对象与目标类别匹配,并将搜索结果反馈。
需要说明的是,在利用多级缓存能够确定目标对象和目标类别的匹配关系时,则不在执行步骤S102。
根据本公开的实施例,图2是根据本公开实施例的分布式集群处理场景的示意图,该分布式集群系统为集群系统的一个示例,示例性的描述了可以利用该分布式集群系统进行本公开任一实施例的搜索方法,本公开不限于单机或多机上的搜索方法,采用分布式的处理可以进一步提高搜索方法的搜索效率和搜索性能。在该分布式集群系统中包括多个节点(如服务器集群101、服务器102、服务器集群103、服务器104、服务器105,服务器105还可以连接电子设备,如手机1051及台式机1052),多个节点间,以及多个节点与连接的电子设备间可以共同执行一个或多个搜索任务。多级缓存和搜索引擎可以分别对应分布式集群系统中的一个节点,也可以共用其中的一个节点。多级缓存中的每一级缓存可以通过一个服务器实现搜索和存储功能,也可以通过一个服务器集群实现搜索和存储功能。搜索引擎可以通过一个服务器实现搜索和存储功能,也可以通过一个服务器集群实现搜索和存储功能。
本公开实施例的搜索方法可以应用于规则引擎。规则引擎是处理复杂规则集合的引擎。通过输入一些基础事件,以推演或者归纳等方式,得到最终的执行结果。规则引擎的核心作用在于将复杂、易变的规则从系统中抽离出来,由灵活可变的规则来描述业务需求。规则引擎通过本方法可以判断目标对象是否为符合目标类别的对象,当目标对象符合目标类别时,则按照目标类别,为目标对象推送个性化的内容,以实现个性化触达。
不论是从消费者的角度考虑消费体验,还是从使用者的角度考虑使用体验,个性化推送都是十分重要的。例如在访问某个app(application,应用程序)时,用户往往希望获得个性化的推荐、显示、功能、活动等,这些将提升用户体验,提升用户粘性。从运营角度上看,某些活动在某些人群中CTR(Click-Through-Rate,点击通过率)较高,某些商品更适合某个人群,不同人群对诉求不一样,精细化、个性化的运营和推送可以有效提升收入和增加用户活跃度。实现上述个性化运营目标的方法就是个性化触达。个性化触达就是运营通过规则设定目标人群,当用户实时浏览app时候,规则引擎来解析规则,判断该用户是否是运营的目标用户,是则执行A推送操作,否则执行B推送,从而实现不同人群的精细化运营。同时,应用本公开实施例的搜索方法的规则引擎,可以解决现有规则引擎的缺陷。具体的,可以解决现有规则引擎学习门槛高的问题、可以解决使用门槛高的问题、可以解决现有规则引擎响应慢,高并发时请求延时长的问题。
在一个示例中,本公开实施例的搜索方法可以应用于网盘商业化业务场景中,当需要为网盘的用户推送活动、产品时,可以先通过本公开实施例的搜索方法确定目标对象(用户)是否是能够被推送特定活动、特定产品的目标类别所适配的用户。
在一个示例中,本公开实施例的搜索方法可以应用于网络购物业务场景中,当需要为购物平台的用户推送活动、产品时,可以先通过本公开实施例的搜索方法确定目标对象(用户)是否是能够被推送特定活动、特定产品的目标类别所适配的用户。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102,其中,多级缓存至少包括两级缓存。在此基础上,步骤S101:根据目标请求中的目标对象的标识信息和目标类别的标识信息,在多级缓存中搜索目标对象和目标类别的匹配关系,可以包括:
S1011:根据目标请求中的目标对象的标识信息和目标类别的标识信息,在第一级缓存中搜索目标对象和目标类别的匹配关系。
S1012:在第一级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在第二级缓存中搜索目标对象和目标类别的匹配关系。
需要说明的是,第一级缓存和第二级缓存可以采用相同的缓存结构,也可以采用不同的缓存结构。第一级缓存和第二级缓存可以设置在本地或云端。第一级缓存可以是一个缓存也可以是集群缓存。第二级缓存可以是一个缓存也可以是集群缓存。例如,第一级缓存可以采用LRU(Least Recently Used,最近最少使用)缓存。第二级缓存可以采用REDIS(Remote Dictionary Server,即远程字典服务)缓存。LRU缓存可以设置在本地。REDIS缓存可以是集群缓存。
根据本公开实施例的方案,通过多级缓存相配合的搜索方式,可以满足高并发请求场景的应用,当有多个目标请求需要搜索时,仍能够保证低延时反馈,提高了搜索性能和搜索效率。
在一种实施方式中,搜索引擎包括ELASTICSEARCH集群,多级缓存包括LRU缓存和REDIS集群缓存。本公开的实施方式提供的搜索方法中,步骤S101:根据目标请求中的目标对象的标识信息和目标类别的标识信息,在多级缓存中搜索目标对象和目标类别的匹配关系,可以包括:
根据目标请求中的目标对象的标识信息和目标类别的标识信息,在LRU缓存中搜索目标对象和目标类别的匹配关系。在LRU缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在REDIS集群缓存中搜索目标对象和目标类别的匹配关系。以及
步骤S102:在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系,可以包括:
在LRU缓存和REDIS集群缓存中均未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在ELASTICSEARCH集群中搜索目标对象和目标类别的匹配关系。
根据本公开实施方式的方案,能够使得搜索方法实现适应高并发请求处理和低延迟反馈,采用多级缓存提升了搜索性能,加快查询效率。通过将对象和类别的关联关系缓存到REDIS集群缓存中,可以极大提升查询性能。单次查询耗时可以控制在20ms(毫秒)以内。使用REDIS集群缓存可以适配对象数量较多而类别较少的应用场景。例如,目标对象为10亿以上,而类别为数百个时。
在一个示例中,在接收到目标请求后,首先到达本地LRU缓存,搜索本地缓存结果中是否有目标对象和目标类别的匹配关系,如果有还需要查看该匹配关系的缓存结果的时间戳是否过期(超过阈值存储时间长度即认为过期),没过期则返回搜索结果。如果过期或没有搜索到,则继续查询布隆过滤器,查看uid和package_id是否存在,如果不存在则直接返回结果,如果命中则表明该uid可能在该package_id中,需要继续查询REDIS集群缓存。
引入了缓存过期问题可以提升目标对象和目标类别的匹配准确度。若缓存过期,则原本的缓存结果可能已经失效或更新,即便在缓存中查找到目标对象和目标类别匹配的缓存结果也不能使用,因为该缓存结果不具有使用价值,若采用反而会导致反馈结果不准确。
REDIS集群缓存中的数据可以采用哈希(hash)映射结构。对象的标识信息作为key(键),存入缓存的时间作为value(值),类别的标识信息作为field(字段)。一个对象的标识信息可以同时归属于多个类别,即一个标识信息可以与多个不同类别形成哈希映射结构。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102。其中,步骤S102:在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系,包括:
在多级缓存中搜索到存储有目标对象和目标类别匹配关系的缓存结果,但缓存结果的时间戳过期(缓存结果的存入时间长度超过阈值时间长度)的情况下,确定为在多级缓存中未搜索到目标对象和目标类别的匹配关系;以及
根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系。
在一个示例中,在接收到目标请求后,首先到达本地LRU缓存,搜索本地缓存结果中是否有目标对象和目标类别的匹配关系,如果有还需要查看该匹配关系的缓存结果的时间戳是否过期(超过阈值存储时间长度即认为过期),没过期则返回搜索结果。如果过期或没有搜索到,则继续查询布隆过滤器,查看uid和package_id是否存在,如果不存在则直接返回结果,如果命中则表明该uid可能在该package_id中,需要继续查询REDIS集群缓存。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102,其中,步骤S1012:在第一级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在第二级缓存中搜索目标对象和目标类别的匹配关系,可以包括:
在第一级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在布隆过滤器中搜索目标对象和目标类别的映射关系。
在搜索到目标对象和目标类别的映射关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在第二级缓存中搜索目标对象和目标类别的匹配关系。
根据本公开实施例的方案,通过布隆过滤器可以解决缓存穿透问题,防止突然极巨高并发或恶意攻击的情况出现。例如,发送的请求中的目标对象和目标类别都是不存在的,即便查询多级缓存也不可能命中,这样会导致所有请求到达搜索引擎,导致搜索引擎瘫痪或高延时,造成集群宕机。布隆过滤器可以解决上述所说的缓存穿透问题。布隆过滤器可以判断出目标对象和目标类别是否在后续的缓存中,若不在,则直接返回不命中的搜索结果,不再继续请求后续缓存进行搜索,防止了上述风险的出现。
在一个具体示例中,布隆过滤器可以通过REDIS的SETBIT和GETBIT命令实现,针对某个类别(或对象),通过将该类别(或对象)的标识信息全部哈希映射为数值,再SETBIT到REDIS字符串结构中,设置为1,这样查询时候就可以通过哈希映射值来GETBIT数据,如果为0说明肯定不在该类别(或对象)之中。
在一个示例中,本公开实施例的搜索方法,包括:在接收到目标请求后,通过本地LRU缓存搜索本地缓存结果中是否有目标对象和目标类别的匹配关系,如果有还需要查看该匹配关系的缓存结果的时间戳是否过期(超过阈值存储时间长度即认为过期),没过期则返回搜索结果。如果过期或没有搜索到,则继续查询布隆过滤器,查看目标对象的uid和目标类别的package_id是否存在,如果不存在则直接返回结果确定未搜索到。如果命中则表明目标对象的uid和目标类别的package_id可能在REDIS集群缓存中存在,则需要继续查询REDIS集群缓存。REDIS集群缓存采用HASH结构,uid作为key,package_id作为field,时间戳作为value,当使用uid和packge_id来查询时候,会取出时间戳,判断如果时间戳没有过期则直接返回命中,如果时间戳过期则继续搜索最底层的ELASTICSEARCH集群。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102,其中,步骤S102:在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系,可以包括:
在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,利用限流器确定搜索引擎的请求并发量。
在请求并发量不满足并发阈值的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系。
需要说明的是,限流器用于实现对请求限流的作用,当请求量超过阈值则不在对接收的请求进行处理。
根据本公开实施例的方案,多级缓存崩溃或者缓存结果同时过期,都会导致瞬间大量请求直接到底搜索引擎。这些极端情况下都会导致搜索引擎压力过大。限流器可以限制同时访问搜索引擎的并发,从而保护搜索引擎,实现服务限流、自动降级、随机过期,解决缓存雪崩问题。
在一个示例中,限流器可以为全局限流器。全局限流器通过REDIS INCR(increment)实现,当在指定时间内INCR增长到并发阈值时候,则全局限流器返回请求失败的结果,不在继续请求搜索引擎继续搜索目标对象和目标类别的匹配关系。当INCR增长小于并发阈值,则继续请求搜索引擎继续搜索目标对象和目标类别的匹配关系。例如,并发阈值设置为2000,则当加到2000时候则返回失败,否则返回成功。设置该并发阈值过期时间为一秒,这样下一秒就会清零,重新计数,从而实现全局限流目的。第一次设置时候直接设置值为1,并设置过期时间,之后再次访问会取到值大小,判断是否超过阈值,没有则返回成功并执行INCR加一,超过则返回失败。
在一个示例中,如图3所示,搜索方法还包括:
在利用多级缓存中的任一级缓存搜索目标对象和目标类别的匹配关系之前,查询该级缓存的运行状态。
在该级缓存出现崩溃等异常情况时,对目标请求的搜索服务降级,直接反馈未命中处理结果(即未查询到目标对象和目标类别的匹配关系),不再继续利用搜索引擎搜索。
在该级缓存未出现异常情况且缓存中未查询到匹配关系(或查询到匹配关系但时间戳过期)的情况下,利用限流器确定搜索引擎的请求并发量。
在请求并发量未超过并发阈值的情况下,利用搜索引擎搜索用户和人群规则的匹配关系。在请求并发量超过并发阈值的情况下,直接反馈未命中处理结果,不在继续利用搜索引擎搜索。
根据本公开实施例的方案,多级缓存崩溃或者缓存结果同时过期,都会导致瞬间大量请求直接到底搜索引擎。这些极端情况下都会导致搜索引擎压力过大。设立限流器,来限制同时访问搜索引擎的并发,从而保护搜索引擎,实现服务限流、自动降级、随机过期,解决缓存雪崩问题。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102,其中,步骤S102:在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系,可以包括:
在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标类别的标识信息,在搜索引擎中搜索匹配的第一预存类别。
根据目标对象的标识信息,确定目标对象的用户画像信息。
在搜索引擎中搜索到第一预存类别的情况下,根据目标对象的标识信息和目标对象的用户画像信息,确定第一预存类别与目标对象的匹配关系。
需要说明的是,第一预存类别可以理解为搜索引擎中存储的与目标类别相同的类别。第一预存类别是预先存储在搜索引擎中的。
根据目标对象的标识信息和目标对象的用户画像信息,确定第一预存类别与目标对象的匹配关系,可以理解为:在目标对象的用户画像信息与第一预存类别所包含的用户画像信息匹配的情况下,确定第一预存类别与目标对象匹配。还可以理解为:在搜索引擎的存储结果中确定第一预存类别对应的第一匹配对象,在第一匹配对象的标识信息和用户画像信息与目标对象的标识信息和用户画像信息匹配的情况下,确定第一预存类别与目标对象匹配。
根据本公开实施例的方案,利用目标对象的标识信息和目标对象的用户画像信息,可以准确的从搜索引擎中确定出目标对象与目标类别的匹配关系。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102,还可以包括:
在根据搜索引擎确定目标对象和目标类别有匹配关系的情况下,将目标对象和目标类别关联并存入多级缓存。
根据本公开实施例的方案,通过将搜索引擎的搜索结果更新到多级缓存中,可以保证多级缓存的有效性。当再次接收到确定目标对象和目标类别具备匹配关系的请求时,在请求经过多级缓存时即可完成搜索任务,提高了搜索效率。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102,还可以包括:
将预设的类别配置页面存入搜索引擎,生成第一预存类别。其中,类别配置页面包括多个用户画像的配置项,对象集合中包括多个对象和多个对象对应的用户画像信息。
利用第一预存类别,从对象集合中确定与第一预存类别有匹配关系的第一匹配对象。
将第一预存类别和第一匹配对象关联并存入多级缓存。
需要说明的是,类别配置页面中的配置项的种类、数量和具体内容可以根据需要进行选择和调整,在此不做具体限定。例如,配置项可以包括:用户会员类型、会员级别、用户性别、用户年龄、用户身份等。
生成的第一预存类别中包含有与配置项对应的信息。生成的第一预存类别可以理解为转码后的类别配置页。
利用第一预存类别,从对象集合中确定与第一预存类别有匹配关系的第一匹配对象,可以理解为:对象的用户画像信息与配置项对应的信息匹配的情况下,确定对象为第一匹配对象。第一匹配对象可以包括一个对象,也可以包括多个对象。
根据本公开实施例的方案,类别配置页面可以直接存储到搜索引擎中并生成第一预存类别,降低了在搜索引擎中创建类别的难度和门槛。
在一个示例中,类别配置页面可以为可视化页面,可以通过拖拽的方式将可视化页面存储到搜索引擎中生成第一预存类别。通过拖拽页面方式在搜索引擎中生成第一预存类别,极大降低了类别创建门槛。由于可视化页面可以直接在搜索引擎中生成第一预存类别,因此实现了通过搜索引擎解耦代码和类别创建的关联度,降低了需要在搜索引擎中创建第一预存类别的用户的操作门槛和学习门槛。
在一个示例中,在利用第一预存类别,从对象集合中确定与第一预存类别有匹配关系的第一匹配对象之前,还包括:利用规则协议将第一预存类别封装为ELASTICSEARCHDSL(domain-specific language,领域特定语言)协议。通过该ELASTICSEARCH DSL协议实现从对象集合中确定与第一预存类别有匹配关系的第一匹配对象。该ELASTICSEARCH DSL具备所有ELASTICSEARCH规则能力,同时较大简化协议,使得协议简单可用。该ELASTICSEARCH DSL协议可以适配可视化拖拽式的类别配置页面,使得类别配置页面可以方便接入搜索引擎使用。ELASTICSEARCH搜索主要有以下几种方式:range(范围搜索)、terms(精确匹配)、match(模糊匹配)、exist(字段存在),有些排除上述方式(must_not)。使用上述这种协议来封装ELASTICSEARCH DSL,在实现功能同时,极大降低协议使用门槛。将第一预存类别翻译为ELASTICSEARCH DSL过程包括:将第一预存类别的range_number、range_string、range_string_last_days转换为Elasticsearch range范围搜索。将第一预存类别的terms_string、not_terms_string转换为Elasticsearch terms精确匹配搜索。将第一预存类别的match、not_match转换为Elasticsearch match模糊匹配搜索。将第一预存类别的exist_labels、not_exist_labels转换为Elasticsearch exist存在搜索。
在一个示例中,将第一预存类别进行JSON(JavaScript Object Notation,对象简谱)序列化,形成JSON串,保存在对应的搜索引擎的索引内容中。该索引使用标识信息作为路由id,使用crowd_rules_agreement存储规则协议JSON串。使用时需要将规则JSON反序列化得到原始规则,然后翻译为ELASTICSEARCH DSL,然后从对象集合中确定第一匹配对象,并缓存到缓存集群中。将第一预存类别存储到索引内容中时,第一预存类别的索引结构可以包括:标识信息、类别名、类别描述、字符串、类别类型、创建人、创建时间、具体规则协议内容等。通过这些信息中的一个或多个即可所引导该第一预存类别。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102,其中,利用第一预存类别,从对象集合中确定与第一预存类别有匹配关系的第一匹配对象,包括:
根据分布式锁确定第一预存类别未被锁定的情况下,利用第一预存类别,从对象集合中确定与第一预存类别有匹配关系的第一匹配对象。
根据本公开实施方式的方案,通过分布式锁可以避免同一个预存类别同时被多次创建,避免造成搜索引擎中预存类别重复和数据混乱形成脏数据的问题出现。
在一个实例中,如图4所示,当搜索方法应用于人群搜索的规则引擎时,目标类别可以理解为目标人群规则,第一预存类别可以理解为新建并存储到搜索引擎(ELASTICSEARCH集群)的人群规则。具体方法包括:
将人群规则新建请求发送至个性化触达规则引擎。
个性化触达规则引擎基于配置分布式锁的REDIS集群(与多级缓存的REDIS集群可以不是同一个),获取该人群规则的锁。
若获取到锁,则可以新建该人群规则并可以存储到搜索引擎。
由于引擎中的所有规则都是可以复用,也就是可能存在同时更新同一个人群、一方在更新人群时候,另一方面在删除人群等并发安全问题。如果不加以限制,则可能造成引擎规则使用混乱,造成脏数据。该分布式锁可以保证同一个人群规则在同一时刻是处于并发安全的。用REDIS集群实现分布式锁,具体是通过REDIS SET PX NX(Setnx setexpsetex)命令实现,使用LUA脚本组合命令,具体逻辑是使用标识信息作为REDIS字符串的key,使用创建人群规则的进程id作为value,即标识该进程占据着该人群规则的锁,其他进程不能获取锁。如果抢占锁时候发现没有进程加锁,则可以设置value为本进程id,并设置过期时间。过期时间到了锁会自动释放。也可以进程完成任务后主动释放。请求上述加锁脚本可以加锁,完成任务之后需要解锁,解锁需要判断锁是否为创建人群规则的进程加的锁,如果是则删除对应的key和value,表示释放锁,不是则解锁失败。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102,还可以包括:
在对象集合更新的情况下,利用第一预存类别,从更新的对象集合中确定与第一预存类别有匹配关系的第二匹配对象。
将第一预存类别和第二匹配对象关联并存入多级缓存。
根据本公开实施例的方案,通过定时更新多级缓存,可以保证多级缓存中的对象和类别的缓存结果的有效性和时效性。
在一种实施方式中,本公开的实施方式提供的搜索方法,包括步骤S101和S102,还可以包括:
利用机器学习方式,确定与第二预存类别有匹配关系的第三匹配对象。
将第二预存类别和第三匹配对象关联并存入多级缓存。
利用知识图谱方式,确定与第三预存类别有匹配关系的第四匹配对象。
将第三预存类别和第四匹配对象关联并存入多级缓存。
需要说明的是,第二预存类别、第三预存类别以及第一预存类别可以为相同类别,也可能为不同类别。在三者为同一类别的情况下,第一匹配对象、第三匹配对象和第四匹配对象可能存在差异,因为三者确定匹配关系的方式不同。通过机器学习和知识图谱可能确定出不同的匹配对象。在三者为不同类别的情况下,可以利用机器学习和知识图谱弥补第一预存类别未涵盖的类别。
根据本公开实施例的方案,通过将不同方式确定的类别和对象的匹配关系存入多级缓存,可以提升多级缓存的搜索效果,尽可能的使目标请求通过多级缓存即可查询到所需结果,降低搜索引擎的搜索压力。
在一种实施方式中,如图5所示,搜索方法包括:
在接收到个性化触达判断请求(目标请求)的情况下,确定个性化触达判断请求中目标对象的标识信息和目标类别的标识信息。
根据目标对象的标识信息和目标类别的标识信息,利用本地LRU缓存进行搜索,若本地LRU缓存包含目标对象和目标类别的匹配关系,则命中搜索返回结果。
若本地LRU缓存不包含目标对象和目标类别的匹配关系,则根据目标对象的标识信息和目标类别的标识信息,利用布隆过滤器进行查询,命中则继续利用REDIS集群缓存搜索。
若REDIS集群缓存不包含目标对象和目标类别的匹配关系,则利用全局限流器确定请求并发量。在请求并发量超出并发阈值的情况下,认为请求失败并反馈未命中搜索的结果。在请求并发量未超出并发阈值的情况下,利用ELASTICSEARCH集群继续进一步搜索。
根据目标类别的标识信息,在ELASTICSEARCH集群中搜索匹配的第一预存类别。
根据目标对象的标识信息,确定目标对象的用户画像信息。
在ELASTICSEARCH集群中搜索到第一预存类别的情况下,根据目标对象的标识信息和目标对象的用户画像信息,确定第一预存类别与目标对象的匹配关系。根据ELASTICSEARCH集群的搜索结果,更新本地LRU缓存、REDIS集群缓存和布隆过滤器。
第一预存类别为将预设的可视化拖拽式页面(类别配置页面)存入搜索引擎生成的。其中,类别配置页面包括多个用户画像的配置项,对象集合中包括多个对象和多个对象对应的用户画像信息。
本公开的实施方式提供一种搜索装置,如图6所示,其为本实施例的搜索装置的结构框图,该装置可以包括:
第一搜索模块610,用于根据目标请求中的目标对象的标识信息和目标类别的标识信息,在多级缓存中搜索目标对象和目标类别的匹配关系。以及
第二搜索模块620,用于在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系。
在一种实施方式中,第一搜索模块610包括:
第一搜索子模块,用于根据目标请求中的目标对象的标识信息和目标类别的标识信息,在第一级缓存中搜索目标对象和目标类别的匹配关系。
第二搜索子模块,用于在第一级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在第二级缓存中搜索目标对象和目标类别的匹配关系。
在一种实施方式中,第二搜索子模块还用于在第一级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在布隆过滤器中搜索目标对象和目标类别的映射关系。在搜索到目标对象和目标类别的映射关系的情况下,根据目标对象的标识信息和目标类别的标识信息,在第二级缓存中搜索目标对象和目标类别的匹配关系。
在一种实施方式中,第二搜索模块620包括:
第一确定子模块,用于在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,利用限流器确定搜索引擎的请求并发量。
第三搜索子模块,用于在请求并发量不满足并发阈值的情况下,根据目标对象的标识信息和目标类别的标识信息,在搜索引擎中搜索目标对象和目标类别的匹配关系。
在一种实施方式中,第二搜索模块620包括:
第四搜索子模块,用于在多级缓存中未搜索到目标对象和目标类别的匹配关系的情况下,根据目标类别的标识信息,在搜索引擎中搜索匹配的第一预存类别。
第二确定子模块,用于根据目标对象的标识信息,确定目标对象的用户画像信息。
第三确定子模块,用于在搜索引擎中搜索到第一预存类别的情况下,根据目标对象的标识信息和目标对象的用户画像信息,确定第一预存类别与目标对象的匹配关系。
在一种实施方式中,搜索装置还包括:
第一存储模块,用于在根据搜索引擎确定目标对象和目标类别有匹配关系的情况下,将目标对象和目标类别关联并存入多级缓存。
在一种实施方式中,搜索装置还包括:
生成模块,用于将预设的类别配置页面存入搜索引擎,生成第一预存类别。其中,类别配置页面包括多个用户画像的配置项,对象集合中包括多个对象和多个对象对应的用户画像信息。
第四确定模块,用于利用第一预存类别,从对象集合中确定与第一预存类别有匹配关系的第一匹配对象。
第二存储模块,用于将第一预存类别和第一匹配对象关联并存入多级缓存。
在一种实施方式中,第四确定模块还用于根据分布式锁确定第一预存类别未被锁定的情况下,利用第一预存类别,从对象集合中确定与第一预存类别有匹配关系的第一匹配对象。
在一种实施方式中,搜索装置还包括:
第三存储模块,用于在对象集合更新的情况下,利用第一预存类别,从更新的对象集合中确定与第一预存类别有匹配关系的第二匹配对象。将第一预存类别和第二匹配对象关联并存入多级缓存。
在一种实施方式中,搜索装置还包括:
第四存储模块,用于利用机器学习方式,确定与第二预存类别有匹配关系的第三匹配对象。将第二预存类别和第三匹配对象关联并存入多级缓存。
第五存储模块,用于利用知识图谱方式,确定与第三预存类别有匹配关系的第四匹配对象。将第三预存类别和第四匹配对象关联并存入多级缓存。
在一种实施方式中,搜索引擎包括ELASTICSEARCH集群,和/或,多级缓存包括LRU缓存和REDIS集群缓存。
本公开实施例的装置的各模块、子模块的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如搜索方法。例如,在一些实施例中,搜索方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的搜索方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行搜索方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (24)
1.一种搜索方法,包括:
根据目标请求中的目标对象的标识信息和目标类别的标识信息,在多级缓存中搜索所述目标对象和所述目标类别的匹配关系;以及
在所述多级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在搜索引擎中搜索所述目标对象和所述目标类别的匹配关系。
2.根据权利要求1所述的方法,其中,所述多级缓存至少包括两级缓存,所述根据目标请求中的目标对象的标识信息和目标类别的标识信息,在多级缓存中搜索所述目标对象和所述目标类别的匹配关系,包括:
根据目标请求中的目标对象的标识信息和目标类别的标识信息,在第一级缓存中搜索所述目标对象和所述目标类别的匹配关系;
在所述第一级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在第二级缓存中搜索所述目标对象和所述目标类别的匹配关系。
3.根据权利要求2所述的方法,其中,所述在所述第一级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在第二级缓存中搜索所述目标对象和所述目标类别的匹配关系,包括:
在所述第一级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在布隆过滤器中搜索所述目标对象和所述目标类别的映射关系;
在搜索到所述目标对象和所述目标类别的映射关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在第二级缓存中搜索所述目标对象和所述目标类别的匹配关系。
4.根据权利要求1所述的方法,其中,所述在所述多级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在搜索引擎中搜索所述目标对象和所述目标类别的匹配关系,包括:
在所述多级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,利用限流器确定搜索引擎的请求并发量;
在所述请求并发量不满足并发阈值的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在所述搜索引擎中搜索所述目标对象和所述目标类别的匹配关系。
5.根据权利要求1所述的方法,其中,所述在所述多级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在搜索引擎中搜索所述目标对象和所述目标类别的匹配关系,包括:
在所述多级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标类别的标识信息,在搜索引擎中搜索匹配的第一预存类别;
根据所述目标对象的标识信息,确定所述目标对象的用户画像信息;
在所述搜索引擎中搜索到所述第一预存类别的情况下,根据所述目标对象的标识信息和所述目标对象的用户画像信息,确定所述第一预存类别与所述目标对象的匹配关系。
6.根据权利要求1所述的方法,还包括:
在根据所述搜索引擎确定所述目标对象和所述目标类别有匹配关系的情况下,将所述目标对象和所述目标类别关联并存入所述多级缓存。
7.根据权利要求1至6任一项所述的方法,还包括:
将预设的类别配置页面存入所述搜索引擎,生成第一预存类别;其中,所述类别配置页面包括多个用户画像的配置项,所述对象集合中包括多个对象和所述多个对象对应的用户画像信息;
利用所述第一预存类别,从对象集合中确定与所述第一预存类别有匹配关系的第一匹配对象;
将所述第一预存类别和所述第一匹配对象关联并存入所述多级缓存。
8.根据权利要求7所述的方法,还包括:
在所述对象集合更新的情况下,利用所述第一预存类别,从更新的对象集合中确定与所述第一预存类别有匹配关系的第二匹配对象;
将所述第一预存类别和所述第二匹配对象关联并存入所述多级缓存。
9.根据权利要求7所述的方法,所述利用所述第一预存类别,从对象集合中确定与所述第一预存类别有匹配关系的第一匹配对象,包括:
根据分布式锁确定所述第一预存类别未被锁定的情况下,利用所述第一预存类别,从对象集合中确定与所述第一预存类别有匹配关系的第一匹配对象。
10.根据权利要求1至6任一项所述的方法,还包括:
利用机器学习方式,确定与第二预存类别有匹配关系的第三匹配对象;
将所述第二预存类别和所述第三匹配对象关联并存入所述多级缓存;
利用知识图谱方式,确定与第三预存类别有匹配关系的第四匹配对象;
将所述第三预存类别和所述第四匹配对象关联并存入所述多级缓存。
11.根据权利要求1至6任一项所述的方法,其中,所述搜索引擎包括ELASTICSEARCH集群,和/或,所述多级缓存包括LRU缓存和REDIS集群缓存。
12.一种搜索装置,包括
第一搜索模块,用于根据目标请求中的目标对象的标识信息和目标类别的标识信息,在多级缓存中搜索所述目标对象和所述目标类别的匹配关系;以及
第二搜索模块,用于在所述多级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在搜索引擎中搜索所述目标对象和所述目标类别的匹配关系。
13.根据权利要求12所述的装置,其中,所述第一搜索模块包括:
第一搜索子模块,用于根据目标请求中的目标对象的标识信息和目标类别的标识信息,在第一级缓存中搜索所述目标对象和所述目标类别的匹配关系;
第二搜索子模块,用于在所述第一级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在第二级缓存中搜索所述目标对象和所述目标类别的匹配关系。
14.根据权利要求13所述的装置,其中,所述第二搜索子模块还用于在所述第一级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在布隆过滤器中搜索所述目标对象和所述目标类别的映射关系;在搜索到所述目标对象和所述目标类别的映射关系的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在第二级缓存中搜索所述目标对象和所述目标类别的匹配关系。
15.根据权利要求12所述的装置,其中,所述第二搜索模块包括:
第一确定子模块,用于在所述多级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,利用限流器确定搜索引擎的请求并发量;
第三搜索子模块,用于在所述请求并发量不满足并发阈值的情况下,根据所述目标对象的标识信息和所述目标类别的标识信息,在所述搜索引擎中搜索所述目标对象和所述目标类别的匹配关系。
16.根据权利要求12所述的装置,其中,所述第二搜索模块包括:
第四搜索子模块,用于在所述多级缓存中未搜索到所述目标对象和所述目标类别的匹配关系的情况下,根据所述目标类别的标识信息,在搜索引擎中搜索匹配的第一预存类别;
第二确定子模块,用于根据所述目标对象的标识信息,确定所述目标对象的用户画像信息;
第三确定子模块,用于在所述搜索引擎中搜索到所述第一预存类别的情况下,根据所述目标对象的标识信息和所述目标对象的用户画像信息,确定所述第一预存类别与所述目标对象的匹配关系。
17.根据权利要求12所述的装置,还包括:
第一存储模块,用于在根据所述搜索引擎确定所述目标对象和所述目标类别有匹配关系的情况下,将所述目标对象和所述目标类别关联并存入所述多级缓存。
18.根据权利要求12至17任一项所述的装置,还包括:
生成模块,用于将预设的类别配置页面存入所述搜索引擎,生成第一预存类别;其中,所述类别配置页面包括多个用户画像的配置项,所述对象集合中包括多个对象和所述多个对象对应的用户画像信息;
第四确定模块,用于利用所述第一预存类别,从对象集合中确定与所述第一预存类别有匹配关系的第一匹配对象;
第二存储模块,用于将所述第一预存类别和所述第一匹配对象关联并存入所述多级缓存。
19.根据权利要求18所述的装置,还包括:
第三存储模块,用于在所述对象集合更新的情况下,利用所述第一预存类别,从更新的对象集合中确定与所述第一预存类别有匹配关系的第二匹配对象;将所述第一预存类别和所述第二匹配对象关联并存入所述多级缓存。
20.根据权利要求18所述的装置,所述第四确定模块还用于根据分布式锁确定所述第一预存类别未被锁定的情况下,利用所述第一预存类别,从对象集合中确定与所述第一预存类别有匹配关系的第一匹配对象。
21.根据权利要求12至17任一项所述的装置,还包括:
第四存储模块,用于利用机器学习方式,确定与第二预存类别有匹配关系的第三匹配对象;将所述第二预存类别和所述第三匹配对象关联并存入所述多级缓存;
第五存储模块,用于利用知识图谱方式,确定与第三预存类别有匹配关系的第四匹配对象;将所述第三预存类别和所述第四匹配对象关联并存入所述多级缓存。
22.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至11中任一项所述的方法。
23.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至11中任一项所述的方法。
24.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1至11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210633388.3A CN114969536A (zh) | 2022-06-06 | 2022-06-06 | 搜索方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210633388.3A CN114969536A (zh) | 2022-06-06 | 2022-06-06 | 搜索方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114969536A true CN114969536A (zh) | 2022-08-30 |
Family
ID=82960525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210633388.3A Pending CN114969536A (zh) | 2022-06-06 | 2022-06-06 | 搜索方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114969536A (zh) |
-
2022
- 2022-06-06 CN CN202210633388.3A patent/CN114969536A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2727011B1 (en) | Predicting user navigation events | |
US20210312139A1 (en) | Method and apparatus of generating semantic feature, method and apparatus of training model, electronic device, and storage medium | |
CN108984553B (zh) | 缓存方法和装置 | |
CN105550206B (zh) | 结构化查询语句的版本控制方法及装置 | |
WO2009062067A1 (en) | Statistical applications in oltp environment | |
TW201812668A (zh) | 資料處理方法、資料發送方法、風險識別方法及設備 | |
US11093496B1 (en) | Performance-based query plan caching | |
CN114116613A (zh) | 基于分布式文件系统的元数据查询方法、设备和存储介质 | |
US20180075095A1 (en) | Organizing datasets for adaptive responses to queries | |
US8965879B2 (en) | Unique join data caching method | |
CN103198361A (zh) | 基于多种优化机制的xacml策略评估引擎系统 | |
KR102476620B1 (ko) | 캐시 자동제어 시스템 | |
CN113568938A (zh) | 数据流处理方法、装置、电子设备及存储介质 | |
EP4216076A1 (en) | Method and apparatus of processing an observation information, electronic device and storage medium | |
EP4080383A1 (en) | Method and apparatus for presenting information, electronic device, storage medium, and program product | |
CN114969536A (zh) | 搜索方法、装置、电子设备及存储介质 | |
CN113014674B (zh) | 服务依赖关系图的绘制方法及装置 | |
US20220107949A1 (en) | Method of optimizing search system | |
CN113157722A (zh) | 一种数据处理方法、装置、服务器、系统及存储介质 | |
CN112016017A (zh) | 确定特征数据的方法和装置 | |
US20220245107A1 (en) | Method, electronic device, and computer program product for processing data | |
US20220374603A1 (en) | Method of determining location information, electronic device, and storage medium | |
CN107423375A (zh) | 应用程序搜索方法和装置 | |
CN114428891A (zh) | 一种网络资源的处理方法、装置、系统、设备及存储介质 | |
CN115878661A (zh) | 一种查询方法、装置、电子设备及存储介质 |
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 |