一种搜索终端的控制方法与搜索终端技术

技术编号:28871441 阅读:13 留言:0更新日期:2021-06-15 23:04
本申请涉及一种搜索终端的控制方法与搜索终端,通过基于开源的向量数据库,依据客户端输入的待写入向量建立向量索引子文件存储入外部存储器,再将将所述向量索引子文件映射的内存对象写入内部存储器,使得ElasticSearch搜索引擎即满足标量搜索的需求,又同时满足向量搜索的需求,借助于ElasticSearch自身搜索结果的合并机制,很好地满足了标量搜索结果和向量搜索结果的合并。当一个索引名下所有向量索引子文件的总体数据规模达到预设数据规模时,通过合并该索引名下的所有向量索引子文件,实现对散碎的向量索引子文件进行驱逐和淘汰,防止内存OOM,使得ElasticSearch搜索引稳定可控。

【技术实现步骤摘要】
一种搜索终端的控制方法与搜索终端
本申请涉及
,特别是涉及一种搜索终端的控制方法与搜索终端。
技术介绍
美国互联网数据中心指出,互联网上的数据每年将增长50%,每两年便将翻一番,而目前世界上90%以上的数据是最近几年才产生的。目前随着大数据的热潮冲击,用户对搜索数据的意愿越来越强烈,能够被搜索到的数据的数据规模也越来越大。传统的搜索引擎很难满足用户海量的数据搜索需求。常规的搜索方式一般包括标量搜索和向量搜索。标量是单指标,是一维向量,例如性别,年龄等。向量是多指标,具备多维度(维度大于等于1),例如多项式系数[w1,w2,...,wn]。标量搜索是基于单指标,单维度的搜索,向量搜索是多指标,多维度的搜索。目前,尚无能够同时支持标量搜索和向量搜索,且能满足海量数据搜索需求的搜索引擎。开源ElasticSearch不支持向量搜索,而开源Milvus仅为向量引擎,它们都不能同时满足标量和向量搜索需求
技术实现思路
基于此,有必要针对尚无能够同时支持标量搜索和向量搜索,且能满足海量数据搜索需求的搜索引擎的问题,提供一种搜索终端的控制方法与搜索终端。本申请提供一种搜索终端的控制方法,包括:实时监控客户端发送的向量写入请求,每当接收到客户端发送的向量写入请求时,依据客户端输入的待写入向量,基于开源的向量数据库,建立向量索引子文件存储入外部存储器,并基于所述向量索引子文件构建所述向量索引子文件映射的内存对象,将所述向量索引子文件映射的内存对象写入内部存储器;所述向量索引子文件映射的内存对象包括多个向量;实时监控客户端发送的查询请求,每当接收到客户端发送的查询请求时,依据查询请求中附带的索引名和待查询向量,在内部存储器中搜寻与待查询向量最相似的K个向量输出;实时监控外部存储器中每一个索引名下所有向量索引子文件的总体数据规模,若一个索引名下所有向量索引子文件的总体数据规模达到预设数据规模,则将该索引名下的所有向量索引子文件合并为一个向量索引文件,将外部存储器中该索引名下的所有向量索引子文件删除,将内部存储器中该索引名下的所有向量索引子文件各自映射的内存对象删除。本申请还提供一种搜索终端,包括:ElasticSearch搜索引擎,搭载有FAISS向量索引库和nmslib向量索引库;所述ElasticSearch搜索引擎包括:处理器,设置于所述ElasticSearch搜索引擎中,用于执行如前述内容提及的搜索终端的控制方法;外部存储器,设置于所述ElasticSearch搜索引擎中,与所述处理器电连接;内存缓存,设置于所述ElasticSearch搜索引擎中,所述内存缓存与所述处理器电连接,所述内存缓存还与外部存储器电连接;内部存储器,设置于所述ElasticSearch搜索引擎中,所述内部存储器与所述处理器电连接,所述内部存储器还与外部存储器电连接。本申请涉及一种搜索终端的控制方法与搜索终端,通过基于开源的向量数据库,依据客户端输入的待写入向量建立向量索引子文件存储入外部存储器,再将将所述向量索引子文件映射的内存对象写入内部存储器,使得ElasticSearch搜索引擎即满足标量搜索的需求,又同时满足向量搜索的需求,借助于ElasticSearch自身搜索结果的合并机制,很好地满足了标量搜索结果和向量搜索结果的合并。当一个索引名下所有向量索引子文件的总体数据规模达到预设数据规模时,通过合并该索引名下的所有向量索引子文件,实现对散碎的向量索引子文件进行驱逐和淘汰,防止内存OOM,使得ElasticSearch搜索引稳定可控。附图说明图1为本申请一实施例提供的一种搜索终端的控制方法的流程示意图;图2为本申请一实施例提供的一种搜索终端的结构示意图;图3为本申请一实施例提供的一种搜索终端与客户端配合使用时的结构示意图。附图标记:10-搜索终端;110-ElasticSearch搜索引擎;111-处理器;112-外部存储器;113-内存缓存;114-内部存储器;20-客户端;具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请提供一种搜索终端的控制方法。需要说明的是,本申请提供的搜索终端的控制方法的应用于搭载有ElasticSearch搜索引擎的搜索终端。此外,本申请提供的搜索终端的控制方法不限制其执行主体。可选地,本申请提供的搜索终端的控制方法的执行主体的可以为一种搭载有ElasticSearch搜索引擎的搜索终端。具体地,本申请提供的搜索终端的控制方法的执行主体的可以为所述搜索终端中的ElasticSearch搜索引擎中的处理器。如图1所示,在本申请的一实施例中,所述搜索终端的控制方法包括如下S100至S300:S100,实时监控客户端发送的向量写入请求。每当接收到客户端发送的向量写入请求时,依据客户端输入的待写入向量,基于开源的向量数据库,建立向量索引子文件存储入外部存储器。并基于所述向量索引子文件构建所述向量索引子文件映射的内存对象,将所述向量索引子文件映射的内存对象写入内部存储器。所述向量索引子文件映射的内存对象包括多个向量。具体地,本步骤为建立向量索引子文件和存储向量索引子文件的过程。建立向量索引子文件时,向量索引子文件的数据来源为客户端输入的待写入向量。当搜索终端接收到客户端发送的向量写入请求时,客户端可以向搜索终端输送一个待写入向量。本步骤中,ElasticSearch搜索引擎可以借助于Lucene的索引扩展机制,结合开源的向量数据库,建立Lucene的向量索引子文件。借助ElasticSearch搜索引擎提供的底层索引管理机制和分布式能力,将新建的Lucene向量索引子文件交给ElasticSearch搜索引擎进行管理,最终使ElasticSearch搜索引擎具备向量搜索能力。存储向量索引子文件时,先将向量索引子文件存储入外部存储器,再将向量索引子文件存储入内部存储器。由于内部存储器中,数据的存在形式与外部存储器的不同,内存存储器中,向量索引子文件以内存对象的形式存储。因此,将所述向量索引子文件映射的内存对象写入内部存储器。外部存储器即磁盘,内部存储器即内存,如果后文出现“磁盘”,即指代外部存储器。如果后文出现“内存”,即指代内部存储器。S200,实时监控客户端发送的查询请求。每当接收到客户端发送的查询请求时,依据查询请求中附带的索引名和待查询向量,在内部存储器中搜寻与待查询向量最相似的K个向量输出。具体地,本步骤为查询请求的处理过程。例如,客户端要查询与一张待查询图片相似的图片。那么,客户端本地需要先将待查询图片转化为一个待查询向量。客户端在向搜索终端发送查询请求时,不但要在查询请求中附带待查询向量,还要在查询请求中附带待查本文档来自技高网...

【技术保护点】
1.一种搜索终端的控制方法,其特征在于,所述方法包括:/nS100,实时监控客户端发送的向量写入请求,每当接收到客户端发送的向量写入请求时,依据客户端输入的待写入向量,基于开源的向量数据库,建立向量索引子文件存储入外部存储器,并基于所述向量索引子文件构建所述向量索引子文件映射的内存对象,将所述向量索引子文件映射的内存对象写入内部存储器;所述向量索引子文件映射的内存对象包括多个向量;/nS200,实时监控客户端发送的查询请求,每当接收到客户端发送的查询请求时,依据查询请求中附带的索引名和待查询向量,在内部存储器中搜寻与待查询向量最相似的K个向量输出;/nS300,实时监控外部存储器中每一个索引名下所有向量索引子文件的总体数据规模,若一个索引名下所有向量索引子文件的总体数据规模达到预设数据规模,则将该索引名下的所有向量索引子文件合并为一个向量索引文件,将外部存储器中该索引名下的所有向量索引子文件删除,将内部存储器中该索引名下的所有向量索引子文件各自映射的内存对象删除。/n

【技术特征摘要】
1.一种搜索终端的控制方法,其特征在于,所述方法包括:
S100,实时监控客户端发送的向量写入请求,每当接收到客户端发送的向量写入请求时,依据客户端输入的待写入向量,基于开源的向量数据库,建立向量索引子文件存储入外部存储器,并基于所述向量索引子文件构建所述向量索引子文件映射的内存对象,将所述向量索引子文件映射的内存对象写入内部存储器;所述向量索引子文件映射的内存对象包括多个向量;
S200,实时监控客户端发送的查询请求,每当接收到客户端发送的查询请求时,依据查询请求中附带的索引名和待查询向量,在内部存储器中搜寻与待查询向量最相似的K个向量输出;
S300,实时监控外部存储器中每一个索引名下所有向量索引子文件的总体数据规模,若一个索引名下所有向量索引子文件的总体数据规模达到预设数据规模,则将该索引名下的所有向量索引子文件合并为一个向量索引文件,将外部存储器中该索引名下的所有向量索引子文件删除,将内部存储器中该索引名下的所有向量索引子文件各自映射的内存对象删除。


2.根据权利要求1所述的搜索终端的控制方法,其特征在于,所述S100包括:
S111,实时监控客户端发送的向量写入请求;
S112,当接收到客户端发送的向量写入请求时,获取客户端输入的待写入向量;
S113,读取所述向量写入请求中的索引名,将所述待写入向量存储入所述索引名对应的内存缓存,返回所述S111。


3.根据权利要求2所述的搜索终端的控制方法,其特征在于,所述S100还包括:
S121,每隔预设时间段,判断每一个索引名对应的内存缓存中向量的数量是否小于第一数量阈值;
S122,若一个内存缓存中向量的数量大于或等于所述第一数量阈值,则基于FAISS数据库,在外部存储器中生成包含该内存缓存中所有向量的FAISS向量索引子文件;
S123,若一个内存缓存中向量的数量小于所述第一数量阈值,则基于nmslib数据库,在外部存储器中生成包含该内存缓存中所有向量的HNSW向量索引子文件;
S124,返回所述S121。


4.根据权利要求3所述的搜索终端的控制方法,其特征在于,所述S100还包括:
S130,基于外部存储器中生成的FAISS索引子文件或HNSW索引子文件构建所述FAISS索引子文件或HNSW索引子文件映射的内存对象,将所述FAISS索引子文件或HNSW索引子文件映射的内存对象写入内部存储器;外部存储器中的FAISS索引子文件或HNSW索引子文件仍然保留。


5.根据权利要求4所述的搜索终端的控制方法,其特征在于,所述S200包括:
S210,实时监控客户端发送的查询请求;
S220,当接收到客户端发送的查询请求时,读取所述查询请求中附带的索引名、命中向量目标数K和待查询向量;
S230,判断外部存储器中在所述索引名下的所有向量索引子文件映射的内存对象是否均写入了内部存储器;
S241,若外部存储器中在所述索引名下的所有向量索引子文件映射的内存对象均写入了内部存储器,则搜寻内部存储器中所述索引名下的所有向量索引子文件各自映射的内存对象,将内存对象的数量记为M;
S242,选取一个内存对象,获取所述内存对象包含的多个向量,记录向量的数量N;
S243,判断向量数量N是否大于命中向量目标数K;
S244,若向量数量N小于或等于命中向量目标数K,则生成该内存对象对应的相似向量集合,将N个向量置入该内存对象对应的相似向量集合;
S245,若向量数量N大于命中向量目标数K,则生成该内存对象对应的相似向量集合,从N个向量中选取与待查询向量最相似的K个向量置入该内存对象对应的相似向量集合;
S246,反复执行S242至S245...

【专利技术属性】
技术研发人员:陈力仇应俊
申请(专利权)人:新华智云科技有限公司
类型:发明
国别省市:浙江;33

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

1