CN114020986A - 内容检索系统 - Google Patents
内容检索系统 Download PDFInfo
- Publication number
- CN114020986A CN114020986A CN202210002638.3A CN202210002638A CN114020986A CN 114020986 A CN114020986 A CN 114020986A CN 202210002638 A CN202210002638 A CN 202210002638A CN 114020986 A CN114020986 A CN 114020986A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- target
- feature vector
- content
- 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.)
- Granted
Links
- 239000013598 vector Substances 0.000 claims abstract description 273
- 238000012216 screening Methods 0.000 claims abstract description 6
- 239000012634 fragment Substances 0.000 claims description 244
- 238000013500 data storage Methods 0.000 claims description 59
- 238000004422 calculation algorithm Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 13
- 238000000034 method Methods 0.000 description 23
- 230000010076 replication Effects 0.000 description 17
- 230000006854 communication Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- JLQUFIHWVLZVTJ-UHFFFAOYSA-N carbosulfan Chemical compound CCCCN(CCCC)SN(C)C(=O)OC1=CC=CC2=C1OC(C)(C)C2 JLQUFIHWVLZVTJ-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/951—Indexing; Web crawling techniques
-
- 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/901—Indexing; Data structures therefor; Storage structures
-
- 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/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
-
- 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/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/908—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种内容检索系统,该系统包括:协调节点和至少一个数据节点,其中:协调节点,用于响应客户端针对待检索内容发送的内容检索请求,确定待检索内容对应的内容特征向量;还用于根据内容特征向量对应的数据节点索引信息,在至少一个数据节点中确定目标数据节点,并发送基于内容特征向量生成的查询请求至目标数据节点;目标数据节点,用于响应于查询请求,在预存的待匹配特征向量查询出候选特征向量集,并发送候选特征向量集至协调节点;协调节点,用于对候选特征向量集进行筛选,获得目标特征向量;并将目标特征向量对应的目标内容作为检索结果发送至客户端。采用本系统能够提高内容检索效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种内容检索系统。
背景技术
随着计算机技术的发展,互联网上图像、文本等内容的数据信息日渐庞大,用户可以在互联网上查询所需的目标内容。
传统的内容检索方案中,只可以支持基础的存储、检索功能,随着相关内容的数据数量不断增长,时间跨度越来越大,相关内容涉及的分类越来越多,相关内容中的附带信息也越来越复杂,导致用户无法从海量内容数据中便捷地、快速地找到目标内容。
因此,传统技术中,存在着内容检索效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高内容检索效率的内容检索系统。
一种内容检索系统,其特征在于,所述系统包括:协调节点和至少一个数据节点,其中:
所述协调节点,用于响应客户端针对待检索内容发送的内容检索请求,确定所述待检索内容对应的内容特征向量;还用于根据所述内容特征向量对应的数据节点索引信息,在所述至少一个数据节点中确定目标数据节点,并发送基于所述内容特征向量生成的查询请求至所述目标数据节点;
所述目标数据节点,用于响应于所述查询请求,在预存的待匹配特征向量查询出候选特征向量集,并发送所述候选特征向量集至所述协调节点;所述候选特征向量集中的各候选特征向量与所述内容特征向量间的相似度大于预设阈值;
所述协调节点,用于对所述候选特征向量集进行筛选,获得目标特征向量;并将所述目标特征向量对应的目标内容作为检索结果发送至所述客户端。
在其中一个实施例中,所述系统还包括主节点;
所述协调节点,具体用于根据预设的索引信息确定算法,确定所述内容特征向量对应的数据节点索引信息;所述数据节点索引信息包括目标分片标识;还用于发送基于所述目标分片标识生成的第一数据节点查询请求至所述主节点;
所述主节点,用于响应于所述第一数据节点查询请求,在所述至少一个数据节点中,查询出所述目标分片标识对应的目标索引分片所在的数据节点,作为所述目标数据节点;还用于发送第一数据节点确定指令至所述协调节点;所述第一数据节点确定指令用于指示所述协调节点发送所述查询请求至所述目标数据节点。
在其中一个实施例中, 所述第一数据节点确定指令包括所述目标数据节点对应的目标节点标识;所述协调节点,还用于响应于所述第一数据节点确定指令,根据所述内容特征向量和所述目标分片标识,生成所述查询请求;并将所述查询请求发送至与所述目标节点标识对应的目标数据节点。
在其中一个实施例中,所述目标数据节点,具体用于响应于所述查询请求,确定与所述目标分片标识对应的目标索引分片,并获取所述目标索引分片中存储的全部待匹配特征向量;还用于,确定所述内容特征向量与各所述待匹配特征向量间的相似度;若在各所述待匹配特征向量对应的相似度中存在大于所述预设阈值的目标相似度,则将所述目标相似度对应的待匹配特征向量,作为所述候选特征向量,添加至所述候选特征向量集中。
在其中一个实施例中,所述协调节点,具体用于根据各候选特征向量与所述内容特征向量间的相似度,对各所述候选特征向量进行排序,得到排序后的候选特征向量;还具体用于从所述排序后的候选特征向量中,确定预设数量的候选特征向量,作为所述目标特征向量。
在其中一个实施例中,所述协调节点,还用于发送基于所述目标特征向量生成的内容获取请求至所述目标数据节点;
所述目标数据节点,用于响应于所述内容获取请求,确定所述目标特征向量所在的索引分片;还用于在所述目标特征向量所在的索引分片中读取所述目标特征向量对应的目标内容,并将所述目标内容发送至所述协调节点。
在其中一个实施例中,所述系统还包括主节点;所述协调节点,还用于响应所述客户端针对待匹配内容发送的索引创建请求,确定所述待匹配内容对应的待匹配特征向量;还用于按照预设的索引信息确定算法,确定用于存储待匹配数据的主索引分片对应的存储分片标识;还用于发送基于所述存储分片标识生成的第二数据节点查询请求至所述主节点;所述待匹配数据包括所述待匹配内容和对应的所述待匹配特征向量;
所述主节点,用于响应于所述第二数据节点查询请求,根据所述主索引分片对应的存储分片标识,在所述至少一个数据节点中,查询出所述主索引分片所在的数据节点,作为数据存储节点;还用于发送第二数据节点确定指令至所述协调节点;所述第二数据节点确定指令用于指示所述协调节点将所述待匹配数据存储至所述数据存储节点中。
在其中一个实施例中,所述第二数据节点确定指令包括所述数据存储节点对应的存储节点标识;所述协调节点,还用于响应所述第二数据节点确定指令,并发送数据存储请求至与所述存储节点标识对应的数据存储节点;所述数据存储请求包括所述待匹配数据和所述存储分片标识;
所述数据存储节点,用于响应于所述数据存储请求,确定所述存储分片标识对应的主索引分片,并将所述待匹配数据存储至所述主索引分片中。
在其中一个实施例中,所述数据存储节点,还用于确定与所述主索引分片对应的副本索引分片,并将所述主索引分片存储的待匹配数据复制至对应的所述副本索引分片中;其中,所述主索引分片对应的副本索引分片所在的数据节点与所述数据存储节点为不同的数据节点。
在其中一个实施例中,所述系统还包括主节点;所述至少一个数据节点中的任意一个数据节点包括至少一个索引分片;所述索引分片包括主索引分片和副本索引分片;其中,任意一个所述主索引分片具有至少一个对应的副本索引分片,且对应的所述副本索引分片中存储的待匹配数据,与所述主索引分片中存储的待匹配数据相同,以及,所述对应的所述副本索引分片所在的数据节点与所述主索引分片所在的数据节点为不同的数据节点;其中,所述待匹配数据包括所述预存的待匹配特征向量,以及所述预存的待匹配特征向量对应的待匹配内容;
所述主节点用于,当所述至少一个数据节点中的任意一个数据节点宕机时,将宕机的数据节点上的主索引分片对应的副本索引分片升级为主索引分片,并将所述宕机的数据节点上的副本索引分片分配至其他数据节点。
上述一种内容检索系统,该系统包括:协调节点和至少一个数据节点,其中:协调节点,用于响应客户端针对待检索内容发送的内容检索请求,确定待检索内容对应的内容特征向量;还用于根据内容特征向量对应的数据节点索引信息,在至少一个数据节点中确定目标数据节点,并发送基于内容特征向量生成的查询请求至目标数据节点;目标数据节点,用于响应于查询请求,在预存的待匹配特征向量查询出候选特征向量集,并发送候选特征向量集至协调节点;候选特征向量集中的各候选特征向量与内容特征向量间的相似度大于预设阈值;协调节点,用于对候选特征向量集进行筛选,获得目标特征向量;并将目标特征向量对应的目标内容作为检索结果发送至客户端;如此,在用户针对待检索内容发起内容检索请求时,通过确定待检索内容对应的内容特征向量,以及内容特征向量对应的数据节点索引信息,可以在分布在存储有大量待匹配特征向量的多个数据节点中,确定出与内容特征向量相关联的目标数据节点;从而可以直接在目标数据节点中存储的待匹配特征向量中,获取与内容特征向量间的相似度大于预设阈值的各候选特征向量,并对各候选特征向量进行筛选得到目标特征向量对应的目标内容,避免调用内容检索系统中的每一个数据节点进行内容特征向量与待匹配特征向量间的相似度运算,减少了数据运算,进而可以快速获取到与待检索内容相匹配的目标内容,提高了内容检索的效率。
附图说明
图1为一个实施例中一种内容检索系统的应用环境图;
图2为一个实施例中一种内容检索系统的索引分片分布示意图;
图3为一个实施例中一种内容检索系统的逻辑框图;
图4为一个实施例中一种内容检索系统中节点的交互流程图;
图5为一个实施例中一种内容检索系统中节点状态转换示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种内容检索系统,可以应用于如图1所示的应用环境中。其中,协调节点110、数据节点120、主节点130通过网络进行通信。其中,内容检索系统中,协调节点110从本质上来说表现为智能负载平衡器,负责协调主节点130和数据节点120;数据节点120包括有大量索引分片,索引分片用于存储待匹配数据;主节点130的主要职责是和集群操作相关的内容,跟踪属于某一集群的相关数据节点,并决定如何将索引分片分配至相关数据节点。稳定的主节点对集群的健康是非常重要的,默认情况下任何一个集群中的节点都有可能被选为主节点130,待匹配数据和查询待检索内容等操作会占用大量的cpu(central processing unit,中央处理器)、内存、io( Input/Output,输入/输出)资源,为了确保一个集群的稳定,需要分离主节点130和数据节点120。
在一个实施例中,如图1所示,提供了一种内容检索系统,该系统包括:协调节点110和至少一个数据节点120;
协调节点110,用于响应客户端针对待检索内容发送的内容检索请求,确定待检索内容对应的内容特征向量;还用于根据内容特征向量对应的数据节点索引信息,在至少一个数据节点中确定目标数据节点,并发送基于内容特征向量生成的查询请求至目标数据节点。
其中,待检索内容可以但不限于是文本内容、图片内容,可以是一条或多条内容。
其中,内容特征向量可以但不限于是待检索内容对应的embedding(嵌入) 特征向量 。
其中,数据节点索引信息包括了内容特征向量在数据节点120中对应的分片标识信息。
具体实现中,协调节点110可以响应客户端针对待检索内容发送的内容检索请求,根据预设算法确定待检索内容对应的内容特征向量,例如可以是待检索内容对应的embedding 特征向量;并根据预设的索引信息确定算法,确定出内容特征向量对应的数据节点索引信息;其中,数据节点索引信息包括了内容特征向量在数据节点120中对应的目标分片标识,从而协调节点110可以通过主节点130中确定目标分片标识在至少一个数据节点120中所在的数据节点,作为目标数据节点,并将基于内容特征向量生成的查询请求发送至目标数据节点。
目标数据节点,用于响应于查询请求,在预存的待匹配特征向量查询出候选特征向量集,并发送候选特征向量集至协调节点。
其中候选特征向量集中的各候选特征向量与所述容特征向量间的相似度大于预设阈值。
其中,数据节点120中存储有大量待匹配特征向量。
其中,待匹配特征向量为待匹配内容对应的特征向量,可以但不限于为embedding特征向量。
其中,待匹配内容可以为待匹配的数据库,包括海量的工业文本数据集、图片库等。
具体实现中,目标数据节点120可以响应协调节点110发送的查询请求,获取内容特征向量,将内容特征向量与目标数据节点120中预存的待匹配特征向量进行特征相似度运算,在预存的待匹配特征向量中确定出与内容特征向量间的相似度大于预设阈值的候选特征向量,从而可以得到候选特征向量集;并将上述候选特征向量集发送至协调节点110.
协调节点110,用于对候选特征向量集进行筛选,获得目标特征向量;并将目标特征向量对应的目标内容作为检索结果发送至所述客户端。
其中,目标内容可以但不限于是与待检索内容匹配的文本数据、图片数据。
具体实现中,协调节点110接收到候选特征向量集后,对候选特征向量集进行全局排序筛选,得到符合预设条件的目标特征向量,并将目标特征向量对应的目标内容作为检索结果发送至客户端,完成对待检索内容的检索响应。
上述一种内容检索系统,该系统包括:协调节点和至少一个数据节点,其中:协调节点,用于响应客户端针对待检索内容发送的内容检索请求,确定待检索内容对应的内容特征向量;还用于根据内容特征向量对应的数据节点索引信息,在至少一个数据节点中确定目标数据节点,并发送基于内容特征向量生成的查询请求至目标数据节点;目标数据节点,用于响应于查询请求,在预存的待匹配特征向量查询出候选特征向量集,并发送候选特征向量集至协调节点;候选特征向量集中的各候选特征向量与内容特征向量间的相似度大于预设阈值;协调节点,用于对候选特征向量集进行筛选,获得目标特征向量;并将目标特征向量对应的目标内容作为检索结果发送至客户端;如此,在用户针对待检索内容发起内容检索请求时,通过确定待检索内容对应的内容特征向量,以及内容特征向量对应的数据节点索引信息,可以在分布在存储有大量待匹配特征向量的多个数据节点中,确定出与内容特征向量相关联的目标数据节点;从而可以直接在目标数据节点中存储的待匹配特征向量中,获取与内容特征向量间的相似度大于预设阈值的各候选特征向量,并对各候选特征向量进行筛选得到目标特征向量对应的目标内容,避免调用内容检索系统中的每一个数据节点进行内容特征向量与待匹配特征向量间的相似度运算,减少了数据运算,进而可以快速获取到与待检索内容相匹配的目标内容,提高了内容检索的效率。
在另一个实施例中,系统还包括主节点;协调节点,具体用于根据预设的索引信息确定算法,确定内容特征向量对应的数据节点索引信息;还用于发送基于目标分片标识生成的第一数据节点查询请求至主节点;
主节点,用于响应于第一数据节点查询请求,在至少一个数据节点中,查询出目标分片标识对应的目标索引分片所在的数据节点,作为目标数据节点;还用于发送第一数据节点确定指令至协调节点。
其中,主节点130存储有各数据节点与各索引分片的存储关系,且各索引分片具有对应的分片标识。
其中,数据节点索引信息包括目标分片标识。
其中,目标节点标识可以但不限于是数字等字符。
其中,第一数据节点确定指令用于指示协调节点发送查询请求至目标数据节点。
其中,第一数据节点确定指令包括目标数据节点对应的目标节点标识;协调节点110,还用于响应于第一数据节点确定指令,根据所述内容特征向量和所述目标分片标识,生成查询请求;并将查询请求发送至与目标节点标识对应的目标数据节点。
其中,目标节点标识可以但不限于是数字等字符。
具体实现中,协调节点110确定了待检索内容对应的内容特征向量后,根据预设的索引信息确定算法,确定内容特征向量对应的数据节点索引信息;上述数据节点索引信息包括了内容特征向量对应的目标分片标识;并将基于目标分片标识生成的第一数据节点查询请求至主节点130。
主节点130存储有各数据节点与各索引分片的存储关系,各索引分片具有对应的分片标识,且索引分片分为主索引分片和副本索引分片,每个主索引分片都具有至少一个分布在另一数据节点120上的副本索引分片。主节点130可以响应于第一数据节点查询请求,确定内容特征向量对应的目标分片标识,从而确定目标分片标识对应的目标索引分片,而这个目标索引分片可以是与目标分片标识对应的主索引分片,也可以是与目标分片标识对应的副本索引分片,进而可以在至少一个数据节点120中,查询出目标索引分片所在的数据节点,作为目标数据节点;并生成包括有上述目标数据节点对应的目标节点标识信息的第一数据节点确定指令,将第一数据节点确定指令发送至协调节点110,使得协调节点110可以响应于上述第一数据节点确定指令,确定目标节点标识,将根据内容特征向量和目标分片标识生成的待检索内容查询请求,发送至目标节点标识对应的目标数据节点;例如,若目标节点标识为5,则目标数据节点为数据节点5。
具体地,为了实现待匹配内容和待匹配特征向量的分布式存储,内容检索系统采用路由分片机制,将待匹配数据存储于位于各数据节点120中的各个索引分片中,从而可以将待匹配数据负载到多个数据节点120上。预设的索引信息确定算法如下所示:
shard_num = hash(_routing) % num_primary_shards
其中,shard_num为分片标识;_routing 是一个可变值,本申请中为内容特征向量;hash为哈希函数;num_of_primary_shards 为数据节点120中主索引分片的数量;如此,将内容特征向量输入至预设的索引信息确定算法中,可以通过 hash 函数生成一个数字,然后,这个数字再除以 num_of_primary_shards后得到一个余数,这个分布在 0 到number_of_primary_shards-1 之间的余数,便是内容特征向量对应的目标分片标识,从而主节点130可以根据目标分片标识确定目标索引分片,进而确定目标索引分片所在的数据节点,即目标数据节点。例如,若余数(目标分片标识)为5,则主节点可以确定目标索引分片为主索引分片5或副本索引分片5。
本实施例的技术方案,通过协调节点,根据预设的索引信息确定算法,确定内容特征向量对应的数据节点索引信息;其中,数据节点索引信息包括目标分片标识;还通过协调节点发送基于目标分片标识生成的第一数据节点查询请求至主节点;通过主节点响应于第一数据节点查询请求,在至少一个数据节点中,查询出目标分片标识对应的目标索引分片所在的数据节点,作为目标数据节点;还通过主节点发送第一数据节点确定指令至协调节点;其中,第一数据节点确定指令用于指示协调节点发送查询请求至目标数据节点;第一数据节点确定指令包括目标数据节点对应的目标节点标识;如此,使得协调节点可以响应于第一数据节点确定指令,根据内容特征向量和目标分片标识,生成查询请求;并将查询请求发送至与目标节点标识对应的目标数据节点;从而可以快速确定内容特征向量对应的目标数据节点,将查询请求发送至对应的目标数据节点中,不需要调用每一个数据节点响应查询请求,减少了大量数据运算,进而提高了内容检索的效率。
在另一个实施例中,目标数据节点,具体用于响应于查询请求,确定与目标分片标识对应的目标索引分片,并获取目标索引分片存储的至少一个待匹配特征向量;还用于,确定内容特征向量与各待匹配特征向量间的相似度;若在各待匹配特征向量对应的相似度中存在大于预设阈值的目标相似度,则将目标相似度对应的待匹配特征向量,作为候选特征向量,添加至候选特征向量集中。
具体实现中,目标数据节点可以响应协调节点110发送的查询请求,确定内容特征向量和目标分片标识,从而确定与目标分片标识对应的目标索引分片,并获取目标索引分片中存储的全部待匹配特征向量;并计算内容特征向量与目标索引分片中各待匹配特征向量间的相似度;若在各待匹配特征向量对应的相似度中存在大于预设阈值的目标相似度,则将目标相似度对应的待匹配特征向量,作为候选特征向量,添加至候选特征向量集中。
本实施例的技术方案,通过目标数据节点响应于查询请求,确定与目标分片标识对应的目标索引分片,并获取目标索引分片存储的至少一个待匹配特征向量;还通过目标数据节点确定内容特征向量与各待匹配特征向量间的相似度;若在各待匹配特征向量对应的相似度中存在大于预设阈值的目标相似度,则将目标相似度对应的待匹配特征向量,作为候选特征向量,添加至候选特征向量集中;如此,可以在至少一个数据节点中的目标数据节点中,确定出目标索引分片,从而可以直接在目标索引分片中预存的待匹配特征向量中,筛选出与内容特征向量间的相似度大于预设阈值的待匹配特征向量,得到候选特征向量;从而在大量的数据节点中,只需将内容特征向量与目标索引分片中的各待匹配特征向量进行相似度运算,减少了数据运算,提高了内容检索的效率。
在另一个实施例中,协调节点,具体用于根据各候选特征向量与内容特征向量间的相似度,对各候选特征向量进行排序,得到排序后的候选特征向量;还具体用于从排序后的候选特征向量中,确定预设数量的候选特征向量,作为目标特征向量。
其中,协调节点,还用于发送基于目标特征向量生成的内容获取请求至目标数据节点;
目标数据节点,用于响应于内容获取请求,确定目标特征向量所在的索引分片;还用于在目标特征向量所在的索引分片中读取目标特征向量对应的目标内容,并将目标内容发送至协调节点。
其中,目标内容可以但不限于是与待检索内容匹配的文本数据、图片数据。
具体实现中,协调节点110接收到目标数据节点发送的候选特征向量集后,根据各候选特征向量与所述内容特征向量间的相似度,对各所述候选特征向量按照对应的相似度值进行相似度值从大到小的排序,得到排序后的候选特征向量,并在排序后的候选特征向量中,确定预设数量的候选特征向量作为目标特征向量;具体地,可以在排序后的候选特征向量中,选定前N个候选特征向量作为目标特征向量;即在排序后的候选特征向量中,确定与内容特征向量间的相似度最大的N个候选特征向量。
然后,协调节点110发送基于目标特征向量生成的内容获取请求至目标数据节点;目标数据节点可以响应于内容获取请求,确定目标特征向量所在的索引分片,在目标特征向量所在的索引分片中读取目标特征向量对应的目标内容,并将目标内容发送至协调节点110,使得协调节点110可以将目标内容作为检索结果返回至客户端。
本实施例的技术方案,通过协调节根据各候选特征向量与内容特征向量间的相似度,对各候选特征向量进行排序,得到排序后的候选特征向量;还通过协调节点从排序后的候选特征向量中,确定预设数量的候选特征向量,作为目标特征向量;其中,还通过协调节点发送基于目标特征向量生成的内容获取请求至目标数据节点;通过目标数据节点响应于内容获取请求,确定目标特征向量所在的索引分片;还通过目标数据节点在目标特征向量所在的索引分片中读取目标特征向量对应的目标内容,并将目标内容发送至协调节点;如此,可以在排序后的候选特征向量中筛选出与内容特征向量最相似的目标特征向量,并通过目标数据节点读取到目标特征向量对应的目标内容;从而可以将与待检索内容最匹配的目标内容返回至客户端,提高了内容检索的准确率。
在另一个实施例中,系统还包括主节点;协调节点,还用于响应客户端针对待匹配内容发送的索引创建请求,确定待匹配内容对应的待匹配特征向量;还用于按照预设的索引信息确定算法,确定用于存储待匹配数据的主索引分片对应的存储分片标识;还用于发送基于存储分片标识生成的第二数据节点查询请求至主节点;
主节点,用于响应于第二数据节点查询请求,根据主索引分片对应的存储分片标识,在至少一个数据节点中,查询出主索引分片所在的数据节点,作为数据存储节点;还用于发送第二数据节点确定指令至协调节点。
其中,第二数据节点确定指令包括数据存储节点对应的存储节点标识;所述协调节点,还用于响应第二数据节点确定指令,并发送数据存储请求至与存储节点标识对应的数据存储节点;
数据存储节点,用于响应于数据存储请求,确定存储分片标识对应的主索引分片,并将待匹配数据存储至主索引分片中。
其中,待匹配数据包括待匹配内容和对应的待匹配特征向量。
其中,第二数据节点确定指令用于指示协调节点将待匹配数据存储至数据存储节点中。
其中,待匹配内容可以为待匹配的数据库,包括海量的工业文本数据集、图片库等。
其中,待匹配特征向量可以但不限于是待匹配内容对应的embedding特征向量 。
其中,数据存储请求包括待匹配数据和存储分片标识。
具体实现中,协调节点110可以响应客户端针对待匹配内容发送的索引创建请求,根据预设算法确定待匹配内容对应的待匹配特征向量;具体地,可以是待匹配内容对应的embedding特征向量;而针对待匹配内容发送的索引创建请求,首先需要将待匹配特征向量先存储于对应的主索引分片中;因此,协调节点110还用于按照预设的索引信息确定算法,确定用于存储待匹配数据的主索引分片对应的存储分片标识;预设的索引信息确定算法、以及存储分片标识的确定方式与上述实施例中的预设的索引信息确定算法和目标分片标识确定方式相同,在此不再赘述。然后,协调节点110将发送基于存储分片标识生成的第二数据节点查询请求至主节点;其中,待匹配数据包括待匹配内容和对应的待匹配特征向量。
主节点130存储有各数据节点与各索引分片的存储关系,各索引分片具有对应的分片标识,且索引分片分为主索引分片和副本索引分片,每个主索引分片都具有至少一个分布在另一数据节点120上的副本索引分片;因此,主节点130可以响应第二数据节点查询请求,根据主索引分片对应的存储分片标识,在所述至少一个数据节点120中,查询出所述主索引分片所在的数据节点,作为数据存储节点;并发送第二数据节点确定指令至协调节点110;其中,第二数据节点确定指令包括数据存储节点对应的存储节点标识,使得协调节点110可以响应第二数据节点确定指令,确定出数据存储节点对应的存储节点标识,并发送包括待匹配数据和存储分片标识的数据存储请求至与存储节点标识对应的数据存储节点;使得数据存储节点可以响应于数据存储请求,在数据存储节点中的索引分片中确定出与存储分片标识对应的主索引分片,将待匹配数据存储至对应的主索引分片中。
本实施例的技术方案,通过协调节点响应客户端针对待匹配内容发送的索引创建请求,确定待匹配内容对应的待匹配特征向量;还通过协调节点按照预设的索引信息确定算法,确定用于存储待匹配数据的主索引分片对应的存储分片标识;还通过协调节点发送基于存储分片标识生成的第二数据节点查询请求至主节点;其中,待匹配数据包括待匹配内容和对应的待匹配特征向量;通过主节点响应于第二数据节点查询请求,根据主索引分片对应的存储分片标识,在至少一个数据节点中,查询出主索引分片所在的数据节点,作为数据存储节点;还通过主节点发送第二数据节点确定指令至协调节点;其中,第二数据节点确定指令包括数据存储节点对应的存储节点标识;还通过协调节点响应第二数据节点确定指令,并发送数据存储请求至与存储节点标识对应的数据存储节点;通过数据存储节点响应于数据存储请求,确定存储分片标识对应的主索引分片,并将待匹配数据存储至主索引分片中;如此,采用路由分片机制,将待匹配数据存储于位于各数据节点中的各个索引分片中,从而可以将待匹配数据负载到多个数据节点上;从而实现了海量待匹配数据的分布式存储,解决了单数据节点存储海量数据的瓶颈;进而可以高效管理待匹配数据,提高系统响应速度。
在另一个实施例中,数据存储节点,还用于确定与主索引分片对应的副本索引分片,并将主索引分片存储的待匹配数据复制至对应的副本索引分片中。
其中,主索引分片对应的副本索引分片所在的数据节点与数据存储节点为不同的数据节点。
具体实现中,数据存储节点还可以根据主索引分片对应的存储分片标识,发送基于上述存储分片标识生成的第三数据节点查询请求至主节点130;主节点130响应于第二数据节点查询请求,根据存储分片标识,在至少一个数据节点120中,查询出与存储分片标识对应的副本索引分片所在的数据节点,作为副本数据存储节点;主节点130还可以发送包括副本存储数据节点对应的节点标识的第三数据节点确定指令至数据存储节点中;使得数据存储节点可以响应于第三数据节点确定指令,根据副本存储数据节点对应的节点标识,确定主索引分片所对应的副本索引分片所在的数据节点,即副本数据存储节点,副本数据存储节点与数据存储节点并不为同一数据节点;数据存储节点还可以向副本数据存储节点发送包括存储分片标识和待匹配数据的数据复制请求,使得副本数据存储节点可以在本地的索引分片中确定与存储分片标识对应的副本索引分片,即上述主索引分片对应的副本索引分片,将主索引分片中存储的待匹配数据复制至对应的副本索引分片中。
当主索引分片对应的所有副本索引分片都成功复制了主索引分片中的待匹配数据后,主索引分片所在的数据存储节点向协调节点110发送数据同步成功通知;使得协调节点110通知客户端数据同步成功。
本实施例的技术方案,通过数据存储节点确定与主索引分片对应的副本索引分片,并将主索引分片存储的待匹配数据复制至对应的副本索引分片中;其中,主索引分片对应的副本索引分片所在的数据节点与数据存储节点为不同的数据节点;如此,当主索引分片存储了待匹配数据后,主索引分片对应的副本索引分片会复制主索引分片中的待匹配数据,保证了数据的一致性;且副本索引分片存储到另一数据节点上;从而当某一数据节点宕机时,通过副本机制仍能保证待匹配数据的完整性,保证了正常的数据服务;进而提高了内容检索系统的可靠性。
在另一个实施例中,系统还包括主节点;至少一个数据节点中的任意一个数据节点包括至少一个索引分片;索引分片包括主索引分片和副本索引分片;其中,任意一个主索引分片具有至少一个对应的副本索引分片,且对应的副本索引分片中存储的待匹配数据,与主索引分片中存储的待匹配数据相同,以及,对应的副本索引分片所在的数据节点与主索引分片所在的数据节点为不同的数据节点;其中,待匹配数据包括预存的待匹配特征向量,以及预存的待匹配特征向量对应的待匹配内容;
主节点还用于,当至少一个数据节点中的任意一个数据节点宕机时,将宕机的数据节点上的主索引分片对应的副本索引分片升级为主索引分片,并将宕机的数据节点上的副本索引分片分配至其他数据节点。
其中,待匹配数据包括预存的待匹配特征向量,以及预存的待匹配特征向量对应的待匹配内容;
具体实现中,任意一个数据节点120中都包括至少一个索引分片,且索引分片包括主索引分片和副本索引分片;任意一个主索引分片具有至少一个对应的副本索引分片,且对应的副本索引分片中存储的待匹配数据,与主索引分片中存储的待匹配数据相同,以及,任意一个主索引分片对应的副本索引分片所在的数据节点与主索引分片所在的数据节点为不同的数据节点,如图2所示,提供了一张索引分片分布图;而主节点130还用于当至少一个数据节点120中的任意一个数据节点120宕机时,将宕机的数据节点上的主索引分片对应的在另一数据节点中的副本索引分片,升级为主索引分片,代替宕机的数据节点中的住索引分片,并将宕机的数据节点上的副本索引分片分配至其他数据节点。
本实施例的技术方案,通过为主索引分片建立对应的副本索引分片,且副本索引分片中存储的待匹配数据,与主索引分片中存储的待匹配数据相同,以及,对应的副本索引分片所在的数据节点与主索引分片所在的数据节点为不同的数据节点;如此,当某一数据节点发生宕机下线时,通过建立副本机制,可以将将宕机的数据节点上的主索引分片对应的在另一数据节点中的副本索引分片,升级为主索引分片,并将宕机的数据节点上的副本索引分片分配至其他数据节点;从而保证了数据的完整性以及正常的数据服务;进而可以提高内容检索系统的可靠性。
为了便于本领域技术人员理解,图3提供了一种内容检索系统的逻辑架构图,包括:接口调用层310、集群通信层320、集群发现层330、向量引擎层340,其中,
为了分布式的内容检索系统拥有良好的易用性,整体系统采用RESTFul(Representational State Transfer,一种网络应用程序的设计风格和开发方式)架构风格的接口调用层310。调用者可以彻底与API的内部实现解耦,调用者只需要通过http(Hyper Text Transfer Protocol,超文本传输协议)接口就可以调用内容检索功能和索引创建功能,大大降低了开发成本。
集群通信层320为基于RPC(Remote Procedure Call,远程过程调用)的通信层,主要用于集群内节点之间的内部通信,从一个节点到另一个节点的每次调用都会基于该通信层。该通信层消息传输是异步通信,在通信过程中,不会有等待的线程。分布式的内容检索系统中使用这种机制可以有效避免C10K(同时处理10000个连接)的问题,而且是广播和收集的一种理想性的解决方案。在对待检索内容进行检索的过程中,很多操作都涉及到了在多个节点之间的交互。各节点之间的交互流程图如图4所示;其中,节点一和节点二可以为协调节点110、数据节点120、主节点130中的任意一种。
首先,要解决通讯的问题,主要是通过在节点一和节点二之间建立TCP(Transmission Control Protocol,传输控制协议)连接,远程过程调用的所有交换数据都在这个连接里传输。连接可以是按需连接,调用结束后就断掉,也可以是长连接,多个远程过程调用共享同一个连接。
第二,要解决寻址的问题,也就是说,节点一上的应用告诉底层的RPC框架,如何连接到B服务器(如主机或IP地址)以及特定的端口及名称,并将这些参数通过客户端存根(Client Stub)打包成网络消息。
第三,当节点一的应用发起远程过程调用时的参数打包成网络消息后,需要通过底层的网络协议(Network Service)如TCP传递到节点二,由于网络协议是基于二进制的,内存中的参数值要序列化成二进制的形式,也就是序列化(Serialize)或编组(marshal),通过寻址和传输将序列化的二进制发送给节点二。
第四,节点二收到请求后,需要通过服务端存根(Server Stub)对打包的网络消息进行解包,即反序列化(序列化的逆操作),恢复为内存中的表达方式,然后找到对应方法(寻址的一部分)进行本地调用,然后得到返回值。
第五,返回值还要发送回节点一上的应用,也要经过序列化的方式发送,节点一接到后,再反序列化,恢复为内存中的表达方式,交给节点一上的应用。
集群发现层330,为基于Raft(一种分布式一致性算法)算法的集群发现层。本申请中的内容检索系统的采用Raft算法来实现领导节点(Leader节点,相当于上述实施例中的主节点130)的选举、多节点间的日志复制以及相关安全性问题。保证了整体集群的协调工作,在存储数据的过程中能够保持数据一致性以及某个节点宕机,整个系统仍然能够对外保持服务的可用性。
Raft 将共识问题分解三个子问题:
领导选举(Leader election):有且仅有一个 leader 节点,如果leader节点宕机,通过选举机制选出新的leader节点;
日志复制(Log replication):leader节点接收到来自客户端的数据更新/删除请求,然后日志复制到 follower节点(从节点,相当于上述实施例中的数据节点120),从而保证集群数据的一致性;
安全性(Safety):通过安全性原则来处理一些特殊情况,保证Raft 算法的完备性;
所以,Raft算法核心流程可以归纳为:
(1)首先选出leader节点,leader节点负责响应客户端的数据更新/删除请求;
(2)然后日志复制到其他follower节点,同时通过安全性的准则来保证整个日志复制的一致性;
(3)如果遇到leader节点故障,followers会重新发起选举出新的leader节点;
其中,日志同步的概念为:服务器接收客户端的数据更新/删除请求,这些请求会落地为命令日志。只要输入状态机的日志命令相同,状态机的执行结果就相同。所以Raft的核心就是leader发出日志同步请求,follower接收并同步日志,最终保证整个集群的日志一致性。
其中,
领导选举(Leader Election)的详细过程如下:
集群中每个节点只能处于 Leader、Follower 和 Candidate(候选节点,相当于上述实施例中的协调节点110) 三种状态的一种:
(1)follower 从节点:
内容检索系统中仁一节点默认是 follower节点;
如果follower节点刚刚开始下线或和leader节点通信超时,follower节点会发起选举,变成 candidate节点,然后去竞选leader节点;
如果收到其他 candidate节点的竞选投票请求,按照先来先得或每个任期只能投票一次的投票原则投票;
(2)candidate候选者节点:
Follower节点发起选举后就变为candidate节点,会向其他节点拉选票。Candidate节点的票会投给自己,不会向其他节点投票;
如果获得超过半数的投票,candidate节点变成leader节点,然后马上和其他节点通信,表明自己的leader节点的地位;
如果选举超时,重新发起选举;
如果遇到更高任期(Term)的leader节点的通信请求,转化为follower节点;
(3)leader领导节点:
成为leader节点后,此时可以接受客户端的数据请求,负责日志同步;
如果遇到更高任期Term的candidate节点的通信请求,这说明candidate节点正在竞选 leader节点,此时之前任期的leader节点转化为follower节点,且完成投票;
如果遇到更高任期Term的leader节点的通信请求,这说明已经选举成功新的leader节点,此时之前任期的leader节点转化为follower节点;
具体的节点状态转换参考如图5所示。
Log Replication 日志复制
选举leader节点成功后,整个集群就可以正常对外提供服务了。Leader节点接收所有客户端请求,然后转化为日志复制命令,发送通知其他节点完成日志复制请求。每个日志复制请求包括状态机命令和任期号,同时还有前一个日志的任期号和日志索引。状态机命令表示客户端请求的数据操作指令,任期号表示leader节点的当前任期。
follower收到日志复制请求的处理流程:
(1)follower 会使用前一个日志的任期号和日志索引来对比自己的数据:
如果相同,接收复制请求,回复 ok;
否则拒绝复制当前日志,回复 error;
(2)leader 收到拒绝复制的回复后,继续发送节点日志复制请求,不过这次会带上更前面的一个日志任期号和索引;
(3)如此循环往复,直到找到一个共同的任期号和日志索引。此时follower从这个索引值开始复制,最终和leader节点日志保持一致;
(4)日志复制过程中,Leader会无限重试直到成功。如果超过半数的节点复制日志成功,就可以认为当前数据请求达成共识,即日志可以commite提交了;
安全性(Safety)
当前的领导选举(Leader election)和日志复制(Log replication)并不能保证Raft算法的安全性,在一些特殊情况下,可能导致数据不一致,所以需要引入下面的安全性规则。
(1)选举安全性(Election Safety):避免脑裂问题
选举安全性要求一个任期 Term 内只能有一个 leader节点,即不能出现脑裂现象,否则 raft 的日志复制原则很可能出现数据覆盖丢失的问题。Raft 算法通过规定若干投票原则来解决这个问题:
一个任期内,follower节点只会投一次票,且先来先得;
Candidate节点存储的日志至少要和follower节点一样新;
只有获得超过半数投票才有机会成为leader节点;
(2)日志只能由leader节点添加修改(Leader Append-Only)
Raft算法规定,所有的数据请求都要交给leader节点处理,要求:
leader节点只能追加日志,不能覆盖日志;
只有leader节点的日志项才能被提交,follower节点不能接收写请求和提交日志;
只有已经提交的日志项,才能被应用到状态机中;
选举时限制新leader节点日志包含所有已提交日志项;
(3)日志匹配特性(Log Matching)
这点主要是为了保证日志的唯一性,要求:
如果在不同日志中的两个条目有着相同索引和任期号,则所存储的命令是相同的;
如果在不同日志中的两个条目有着相同索引和任期号,则它们之间所有条目完全一样;
(4)选举完备性(Leader Completeness):leader节点必须具备最新提交日志
Raft 算法规定:只有拥有最新提交日志的follower节点才有资格成为leader节点。
具体做法:candidate节点竞选投票时会携带最新提交日志,follower节点会用自己的日志和candidate节点 做比较。如果follower节点比对不是最新日志,那么拒绝这次投票;
否则根据前面的投票规则处理。这样就可以保证只有最新提交节点成为leader节点;
因为日志提交需要超过半数的节点同意,所以针对日志同步落后的follower节点(还未完全同步日志,导致落后于其他节点)在竞选leader节点的时候,肯定拿不到超过半数的票,也只有那些完成同步的才有可能获取超过半数的票成为leader节点。
日志更新判断方式是比较日志项的term和index(索引值):
如果TermId不同,选择TermId最大的;
如果TermId相同,选择Index最大的。
如此,通过基于RAFT算法的集群发现层实现领导节点的选举、多节点间的日志复制以及相关安全性问题。保证了整体集群的协调工作,在存储数据的过程中能够保持数据一致性以及某个节点宕机,整个系统仍然能够对外保持服务的可用性。
向量引擎层340,内容检索的核心流程就是给定一个向量集合,通过Faiss(针对聚类和相似性搜索库)可以建立一个数据结构。这个数据结构建立完成之后,当给定一个向量x,它可以高效地查找出与x距离最近的向量。
基于Faiss构建大规模检索任务主要包括以下几个流程:
(1) 获取候选集库(相当于上述实施例中的待匹配内容)和待检索数据(相当于上述实施例中的待检索内容)
候选集库就是需要去检索的数据库,包括海量的工业文本数据集、图片库等。待检索数据就是需要去匹配的样本,比如用户搜索query(查询参数类)或者工业图片等,这里可以是一条或者多条。通常情况下这里候选数据集库和待检索数据已经编码成了embedding特征向量。
(2) 构建并训练索引
这个流程就是根据候选数据集库去构建和训练索引(index),即将海量数据集组织起来用于后续检索。不同的索引方式会影响检索效率和内存使用。Faiss支持多种索引,比如最简单的暴力检索Flat,还有多种近似查找方式(ANN,Approximate NearestNeighbor)等等,下面是Faiss支持的部分索引类型:
Exact Search for L2 #基于L2距离的确定搜索匹配
Exact Search for Inner Product #基于内积的确定搜索匹配
Hierarchical Navigable Small World graph exploration #分层索引
Inverted file with exact post-verification #倒排索引
Locality-Sensitive Hashing (binary flat index) #本地敏感hash
Scalar quantizer (SQ) in flat mode #标量量化索引
Product quantizer (PQ) in flat mode #笛卡尔乘积索引
IVF and scalar quantizer #倒排+标量量化索引
IVFADC (coarse quantizer+PQ on residuals) #倒排+笛卡尔乘积索引
IVFADC+R (same as IVFADC with re-ranking based on codes) #倒排+笛卡尔乘积索引 + 基于编码器重排
其中Exact Search for L2与Exact Search for Inner Product都是属于遍历计算索引向量,不需要做训练操作。其他索引类型都需要经过训练,这个训练过程就是根据特征的分布进行聚类训练,从而提升检索速度。
(3) 根据索引检索数据
索引构建和训练完成之后就可以用于检索待检索内容。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种内容检索系统,其特征在于,所述系统包括:协调节点和至少一个数据节点,其中:
所述协调节点,用于响应客户端针对待检索内容发送的内容检索请求,确定所述待检索内容对应的内容特征向量;还用于根据所述内容特征向量对应的数据节点索引信息,在所述至少一个数据节点中确定目标数据节点,并发送基于所述内容特征向量生成的查询请求至所述目标数据节点;
所述目标数据节点,用于响应于所述查询请求,在预存的待匹配特征向量查询出候选特征向量集,并发送所述候选特征向量集至所述协调节点;所述候选特征向量集中的各候选特征向量与所述内容特征向量间的相似度大于预设阈值;
所述协调节点,用于对所述候选特征向量集进行筛选,获得目标特征向量;并将所述目标特征向量对应的目标内容作为检索结果发送至所述客户端。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括主节点;
所述协调节点,具体用于根据预设的索引信息确定算法,确定所述内容特征向量对应的数据节点索引信息;所述数据节点索引信息包括目标分片标识;还用于发送基于所述目标分片标识生成的第一数据节点查询请求至所述主节点;
所述主节点,用于响应于所述第一数据节点查询请求,在所述至少一个数据节点中,查询出所述目标分片标识对应的目标索引分片所在的数据节点,作为所述目标数据节点;还用于发送第一数据节点确定指令至所述协调节点;所述第一数据节点确定指令用于指示所述协调节点发送所述查询请求至所述目标数据节点。
3.根据权利要求2所述的系统,其特征在于,所述第一数据节点确定指令包括所述目标数据节点对应的目标节点标识;所述协调节点,还用于响应于所述第一数据节点确定指令,根据所述内容特征向量和所述目标分片标识,生成所述查询请求;并将所述查询请求发送至与所述目标节点标识对应的目标数据节点。
4.根据权利要求3所述的系统,其特征在于,所述目标数据节点,具体用于响应于所述查询请求,确定与所述目标分片标识对应的目标索引分片,并获取所述目标索引分片中存储的全部待匹配特征向量;还用于,确定所述内容特征向量与各所述待匹配特征向量间的相似度;若在各所述待匹配特征向量对应的相似度中存在大于所述预设阈值的目标相似度,则将所述目标相似度对应的待匹配特征向量,作为所述候选特征向量,添加至所述候选特征向量集中。
5.根据权利要求1所述的系统,其特征在于,所述协调节点,具体用于根据各候选特征向量与所述内容特征向量间的相似度,对各所述候选特征向量进行排序,得到排序后的候选特征向量;还具体用于从所述排序后的候选特征向量中,确定预设数量的候选特征向量,作为所述目标特征向量。
6.根据权利要求5所述的系统,其特征在于,所述协调节点,还用于发送基于所述目标特征向量生成的内容获取请求至所述目标数据节点;
所述目标数据节点,用于响应于所述内容获取请求,确定所述目标特征向量所在的索引分片;还用于在所述目标特征向量所在的索引分片中读取所述目标特征向量对应的目标内容,并将所述目标内容发送至所述协调节点。
7.根据权利要求1所述的系统,其特征在于,所述系统还包括主节点;
所述协调节点,还用于响应所述客户端针对待匹配内容发送的索引创建请求,确定所述待匹配内容对应的待匹配特征向量;还用于按照预设的索引信息确定算法,确定用于存储待匹配数据的主索引分片对应的存储分片标识;还用于发送基于所述存储分片标识生成的第二数据节点查询请求至所述主节点;所述待匹配数据包括所述待匹配内容和对应的所述待匹配特征向量;
所述主节点,用于响应于所述第二数据节点查询请求,根据所述主索引分片对应的存储分片标识,在所述至少一个数据节点中,查询出所述主索引分片所在的数据节点,作为数据存储节点;还用于发送第二数据节点确定指令至所述协调节点;所述第二数据节点确定指令用于指示所述协调节点将所述待匹配数据存储至所述数据存储节点中。
8.根据权利要求7所述的系统,其特征在于,所述第二数据节点确定指令包括所述数据存储节点对应的存储节点标识;所述协调节点,还用于响应所述第二数据节点确定指令,并发送数据存储请求至与所述存储节点标识对应的数据存储节点;所述数据存储请求包括所述待匹配数据和所述存储分片标识;
所述数据存储节点,用于响应于所述数据存储请求,确定所述存储分片标识对应的主索引分片,并将所述待匹配数据存储至所述主索引分片中。
9.根据权利要求8所述的系统,其特征在于,所述数据存储节点,还用于确定与所述主索引分片对应的副本索引分片,并将所述主索引分片存储的待匹配数据复制至对应的所述副本索引分片中;其中,所述主索引分片对应的副本索引分片所在的数据节点与所述数据存储节点为不同的数据节点。
10.根据权利要求1所述的系统,其特征在于,所述系统还包括主节点;所述至少一个数据节点中的任意一个数据节点包括至少一个索引分片;所述索引分片包括主索引分片和副本索引分片;其中,任意一个所述主索引分片具有至少一个对应的副本索引分片,且对应的所述副本索引分片中存储的待匹配数据,与所述主索引分片中存储的待匹配数据相同,以及,所述对应的所述副本索引分片所在的数据节点与所述主索引分片所在的数据节点为不同的数据节点;其中,所述待匹配数据包括所述预存的待匹配特征向量,以及所述预存的待匹配特征向量对应的待匹配内容;
所述主节点用于,当所述至少一个数据节点中的任意一个数据节点宕机时,将宕机的数据节点上的主索引分片对应的副本索引分片升级为主索引分片,并将所述宕机的数据节点上的副本索引分片分配至其他数据节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210002638.3A CN114020986B (zh) | 2022-01-05 | 2022-01-05 | 内容检索系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210002638.3A CN114020986B (zh) | 2022-01-05 | 2022-01-05 | 内容检索系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114020986A true CN114020986A (zh) | 2022-02-08 |
CN114020986B CN114020986B (zh) | 2022-04-26 |
Family
ID=80069243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210002638.3A Active CN114020986B (zh) | 2022-01-05 | 2022-01-05 | 内容检索系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020986B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000005663A2 (en) * | 1998-07-24 | 2000-02-03 | Jarg Corporation | Distributed computer database system and method for performing object search |
US7647329B1 (en) * | 2005-12-29 | 2010-01-12 | Amazon Technologies, Inc. | Keymap service architecture for a distributed storage system |
CN102169507A (zh) * | 2011-05-26 | 2011-08-31 | 厦门雅迅网络股份有限公司 | 一种分布式实时搜索引擎 |
JP2017021494A (ja) * | 2015-07-08 | 2017-01-26 | 日本電信電話株式会社 | 負荷分散プログラムおよびサーバ |
CN108197296A (zh) * | 2018-01-23 | 2018-06-22 | 马上消费金融股份有限公司 | 基于Elasticsearch索引的数据存储方法 |
CN109783678A (zh) * | 2018-12-29 | 2019-05-21 | 深圳云天励飞技术有限公司 | 一种图像搜索的方法及装置 |
US10318491B1 (en) * | 2015-03-31 | 2019-06-11 | EMC IP Holding Company LLC | Object metadata query with distributed processing systems |
WO2020073854A1 (zh) * | 2018-10-12 | 2020-04-16 | 第四范式(北京)技术有限公司 | 管理内存数据及在内存中维护数据的方法和系统 |
CN111290700A (zh) * | 2018-12-10 | 2020-06-16 | 北京京东尚科信息技术有限公司 | 分布式数据读写方法和系统 |
US20210117425A1 (en) * | 2019-10-18 | 2021-04-22 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
CN113132267A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 一种分布式系统、数据聚合方法和计算机可读存储介质 |
-
2022
- 2022-01-05 CN CN202210002638.3A patent/CN114020986B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000005663A2 (en) * | 1998-07-24 | 2000-02-03 | Jarg Corporation | Distributed computer database system and method for performing object search |
US7647329B1 (en) * | 2005-12-29 | 2010-01-12 | Amazon Technologies, Inc. | Keymap service architecture for a distributed storage system |
CN102169507A (zh) * | 2011-05-26 | 2011-08-31 | 厦门雅迅网络股份有限公司 | 一种分布式实时搜索引擎 |
US10318491B1 (en) * | 2015-03-31 | 2019-06-11 | EMC IP Holding Company LLC | Object metadata query with distributed processing systems |
JP2017021494A (ja) * | 2015-07-08 | 2017-01-26 | 日本電信電話株式会社 | 負荷分散プログラムおよびサーバ |
CN108197296A (zh) * | 2018-01-23 | 2018-06-22 | 马上消费金融股份有限公司 | 基于Elasticsearch索引的数据存储方法 |
WO2020073854A1 (zh) * | 2018-10-12 | 2020-04-16 | 第四范式(北京)技术有限公司 | 管理内存数据及在内存中维护数据的方法和系统 |
CN111290700A (zh) * | 2018-12-10 | 2020-06-16 | 北京京东尚科信息技术有限公司 | 分布式数据读写方法和系统 |
CN109783678A (zh) * | 2018-12-29 | 2019-05-21 | 深圳云天励飞技术有限公司 | 一种图像搜索的方法及装置 |
US20210117425A1 (en) * | 2019-10-18 | 2021-04-22 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
CN113132267A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 一种分布式系统、数据聚合方法和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114020986B (zh) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860457B1 (en) | Globally ordered event stream logging | |
US10002148B2 (en) | Memory-aware joins based in a database cluster | |
US8261020B2 (en) | Cache enumeration and indexing | |
US8484417B2 (en) | Location updates for a distributed data store | |
US8176256B2 (en) | Cache regions | |
CN104067216A (zh) | 用于实施可扩展数据存储服务的系统和方法 | |
US9477772B2 (en) | Storing and retrieving objects on a computer network in a distributed database | |
CN103150394A (zh) | 面向高性能计算的分布式文件系统元数据管理方法 | |
US10936559B1 (en) | Strongly-consistent secondary index for a distributed data set | |
CN110633378A (zh) | 一种支持超大规模关系网络的图数据库构建方法 | |
JPH0822409A (ja) | ネットワークにおける配布情報管理システム | |
CN113377868A (zh) | 一种基于分布式kv数据库的离线存储系统 | |
US10599614B1 (en) | Intersection-based dynamic blocking | |
CN115114374B (zh) | 事务执行方法、装置、计算设备及存储介质 | |
US9836513B2 (en) | Page feed for efficient dataflow between distributed query engines | |
CN115114294A (zh) | 数据库存储模式的自适应方法、装置、计算机设备 | |
WO2011073923A2 (en) | Record operation mode setting | |
JP5684671B2 (ja) | 条件検索データ保存方法、条件検索データベースクラスタシステム、ディスパッチャ、およびプログラム | |
CN114020986B (zh) | 内容检索系统 | |
US20170180473A1 (en) | High throughput, high reliability data processing system | |
CN114896250A (zh) | 一种键值分离的键值存储引擎索引优化方法及装置 | |
JP4914117B2 (ja) | データ処理システム | |
CN108256019A (zh) | 数据库主键生成方法、装置、设备及其存储介质 | |
CN116595015B (zh) | 数据处理方法、装置、设备及存储介质 | |
Guzmán et al. | Creation of a distributed NoSQL database with distributed hash tables |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |