CN116541420B - 向量数据的查询方法 - Google Patents
向量数据的查询方法 Download PDFInfo
- Publication number
- CN116541420B CN116541420B CN202310827046.XA CN202310827046A CN116541420B CN 116541420 B CN116541420 B CN 116541420B CN 202310827046 A CN202310827046 A CN 202310827046A CN 116541420 B CN116541420 B CN 116541420B
- Authority
- CN
- China
- Prior art keywords
- vector
- query
- areas
- query vector
- area
- 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.)
- Active
Links
- 239000013598 vector Substances 0.000 title claims abstract description 230
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000004364 calculation method Methods 0.000 description 6
- 238000010845 search algorithm Methods 0.000 description 3
- 239000002360 explosive Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种向量数据的查询方法,包括:使用聚类算法将查询向量库的所有待查询向量分为多个向量区域,每个向量区域具有一个聚类中心向量;输入第一查询向量,查找第一查询向量与向量区域距离最小的n个向量区域;将第一查询向量与对应的n个向量区域存储在缓存区中;输入第二查询向量,在缓存区中查询是否存在与第二查询向量相同的查询向量;如果有,则直接查找对应的n个向量区域作为第二查询向量对应的n个向量区域;如果不存在,则在存储区中进行查找第二查询向量与区域距离最小的n个区域的操作,将第二查询向量和对应的n个向量区域存储在缓存区中;在存储区中进行从n个向量区域中查询与第二查询向量距离较小的k个待查询向量。
Description
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种向量数据的查询方法。
背景技术
通过向量数据的查询方法,可以根据输入的查询向量在大量的待查询向量中中查找到想要的数据。在向量查询算法中,主要利用一些相似性对比来得到想要的数据,而这些对比方式主要是利用距离计算得到的。
近似最近邻搜索索引以近似最近邻搜索算法为基础,是用于在高维空间中有效搜索给定查询点的最近邻的数据结构,以搜索准确性为代价提高最近邻查询速度,主流向量数据库都使用近似最近邻检索索引。现有技术的近似最近邻搜索算法大多是基于内存的算法,基于内存的算法意味着是在进行查询操作前需要将存储区中所有的向量数据载入进内存。
但是,随着向量数据的爆炸性增长和向量数据处理技术在实际业务中的应用场景增多,需要向量数据库处理的向量数据量从百万级别上升到了亿级别,在亿级别或更高的数据量情况下,将存储区中所有的向量数据载入进内存变得不现实,将现有技术的基于内存的搜索算法应用于硬盘上的向量数据会带来巨大的性能损耗,对硬盘I/O带来了巨大压力。
发明内容
本发明的目的在于提供一种向量数据的查询方法,可以减少在硬盘中进行查询向量的查询计算的步骤,从而,可以减少硬盘I/O压力和性能损耗。
为了达到上述目的,本发明提供了一种向量数据的查询方法,包括:
使用聚类算法将查询向量库的所有待查询向量分为多个向量区域,每个所述向量区域具有一个聚类中心向量;
输入第一查询向量,查找所述第一查询向量与所述向量区域距离最小的n个向量区域;
将所述第一查询向量与对应的n个向量区域存储在缓存区中;
输入第二查询向量,在所述缓存区中查询是否存在与所述第二查询向量相同的查询向量;
如果所述缓存区中存在与所述第二查询向量相同的查询向量,则直接查找该查询向量对应的n个向量区域,作为所述第二查询向量对应的n个向量区域;
如果所述缓存区中查询不存在与所述第二查询向量相同的查询向量,则在存储区中进行查找所述第二查询向量与所述向量区域距离最小的n个向量区域的操作,同时,将所述第二查询向量和对应的n个向量区域存储在所述缓存区中或者使用所述第二查询向量和对应的n个向量区域替换所述缓存区中的某一查询向量和对应的n个向量区域;
在存储区中进行从n个向量区域中查询与所述第二查询向量距离较小的k个待查询向量,n和k均为大于1的整数。
可选的,在所述的向量数据的查询方法中,所述聚类中心向量为每个所述向量区域的代表。
可选的,在所述的向量数据的查询方法中,所述缓存区中存储的查询向量的数量小于设定值时,将所述第二查询向量和对应的n个向量区域存储在所述缓存区中。
可选的,在所述的向量数据的查询方法中,所述缓存区中存储的查询向量的数量大于或等于设定值时,使用所述第二查询向量和对应的n个向量区域替换所述缓存区中的某一查询向量和对应的n个向量区域。
可选的,在所述的向量数据的查询方法中,使用所述第二查询向量和对应的n个向量区域替换所述缓存区中的未被访问时间最长的查询向量和对应的n个向量区域。
在本发明提供的向量数据的查询方法中,将向量数据的查询步骤按照前后顺序分成两部分,前面一部分步骤在缓存区中进行,计算出中间结果,后面一部分步骤在存储区中进行。在前面一部分步骤中,一边计算中间结果一边将中间结果存在缓存区中。之后每进行一步查询向量的查询,先在缓存区中查询是否存在相同的查询向量,如果有则直接在缓存区中调用中间结果,在存储区中进行下部分查询的计算。本发明减少了在硬盘中进行查询向量的查询计算的步骤,从而,减少了硬盘I/O压力和性能损耗。
附图说明
图1是本发明实施例一的向量数据的查询方法的流程图。
具体实施方式
下面将结合示意图对本发明的具体实施方式进行更详细的描述。根据下列描述,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
在下文中,术语“第一”“第二”等用于在类似要素之间进行区分,且未必是用于描述特定次序或时间顺序。要理解,在适当情况下,如此使用的这些术语可替换。类似的,如果本文所述的方法包括一系列步骤,且本文所呈现的这些步骤的顺序并非必须是可执行这些步骤的唯一顺序,且一些所述的步骤可被省略和/或一些本文未描述的其他步骤可被添加到该方法。
请参照图1,本发明实施例一提供了一种向量数据的查询方法,包括:
S11:使用聚类算法将查询向量库的所有待查询向量分为多个向量区域,每个向量区域具有一个聚类中心向量;
S12:输入第一查询向量,查找所述第一查询向量与所述向量区域距离最小的n个向量区域;
S13:将所述第一查询向量与对应的n个向量区域存储在缓存区中;
S14:输入第二查询向量,在所述缓存区中查询是否存在与所述第二查询向量相同的查询向量;
S15:如果所述缓存区中存在与所述第二查询向量相同的查询向量,则直接查找该查询向量对应的n个向量区域,作为所述第二查询向量对应的n个向量区域;
S16:如果所述缓存区中查询不存在与所述第二查询向量相同的查询向量,则在存储区中进行查找所述第二查询向量与所述向量区域距离最小的n个向量区域的操作,同时,将所述第二查询向量和对应的n个向量区域存储在所述缓存区中或者使用所述第二查询向量和对应的n个向量区域替换所述缓存区中的某一查询向量和对应的n个向量区域;
S17:在存储区中进行从n个向量区域中查询与所述第二查询向量距离较小的k个待查询向量,n和k均为大于1的整数。
其中,聚类中心向量为每个向量区域的代表。聚类中心由聚类算法计算得到,聚类中心向量的具体计算方法在此不做赘述。
优选的,查询向量为多个,所以并不只是第一查询向量和第二查询向量,第一查询向量和第二查询向量只是用于对两个查询向量的区分,当然第一查询向量和第二查询向量的id可能相同。如果缓存区中没有存储查询向量,则多个查询向量按照步骤S14~S17进行。如果执行到一段时间,缓存区已经存有若干查询向量了,则以后的多个向量均执行步骤S14~S17。查询向量根据用户的需要选择,每次是对一个查询向量进行查询,后续的查询向量可以借助前面的查询向量的中间计算结果,以减少查询步骤。
优选的,缓存区中存储的查询向量和对应的n个向量区域的数量小于设定值时,步骤S16中,将第二查询向量和对应的n个向量区域存储在缓存区中。缓存区中存储的查询向量和对应的n个向量区域的数量大于或等于设定值时,步骤S16中,使用第二查询向量和对应的n个向量区域替换缓存区中的某一查询向量和对应的n个向量区域。替换的时候,优先替换缓存区中未被访问时间最长的查询向量和对应的n个向量区域,替换是指替换其存储空间。缓存区中一个查询向量必定有一个对应的n个向量区域,查询向量以id的形式区分,所以判断两个查询向量是否相同,可以看id是否相同。
综上,在本发明实施例提供的向量数据的查询方法中,将向量数据的查询步骤按照前后顺序分成两部分,前面一部分步骤在缓存区中进行,计算出中间结果,后面一部分步骤在存储区中进行。在前面一部分步骤中,一边计算中间结果一边将中间结果存在缓存区中。之后每进行一步查询向量的查询,先在缓存区中查询是否存在相同的查询向量,如果有则直接在缓存区中调用中间结果,在存储区中进行下部分查询的计算。本发明减少了在硬盘中进行查询向量的查询计算的步骤,从而,减少了硬盘I/O压力和性能损耗。
上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。
Claims (4)
1.一种向量数据的查询方法,其特征在于,包括:
使用聚类算法将查询向量库的所有待查询向量分为多个向量区域,每个所述向量区域具有一个聚类中心向量;
输入第一查询向量,查找所述第一查询向量与所述向量区域距离最小的n个向量区域;
将所述第一查询向量与对应的n个向量区域存储在缓存区中;
输入第二查询向量,在所述缓存区中查询是否存在与所述第二查询向量相同的查询向量;
如果所述缓存区中存在与所述第二查询向量相同的查询向量,则直接查找该查询向量对应的n个向量区域,作为所述第二查询向量对应的n个向量区域;
如果所述缓存区中查询不存在与所述第二查询向量相同的查询向量,则在存储区中进行查找所述第二查询向量与所述向量区域距离最小的n个向量区域的操作,同时,将所述第二查询向量和对应的n个向量区域存储在所述缓存区中或者使用所述第二查询向量和对应的n个向量区域替换所述缓存区中的某一查询向量和对应的n个向量区域,其中,所述缓存区中存储的查询向量的数量大于或等于设定值时,使用所述第二查询向量和对应的n个向量区域替换所述缓存区中的某一查询向量和对应的n个向量区域;
在存储区中进行从n个向量区域中查询与所述第二查询向量距离较小的k个待查询向量,n和k均为大于1的整数。
2.如权利要求1所述的向量数据的查询方法,其特征在于,所述聚类中心向量为每个所述向量区域的代表。
3.如权利要求1所述的向量数据的查询方法,其特征在于,所述缓存区中存储的查询向量的数量小于设定值时,将所述第二查询向量和对应的n个向量区域存储在所述缓存区中。
4.如权利要求1所述的向量数据的查询方法,其特征在于,使用所述第二查询向量和对应的n个向量区域替换所述缓存区中的未被访问时间最长的查询向量和对应的n个向量区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310827046.XA CN116541420B (zh) | 2023-07-07 | 2023-07-07 | 向量数据的查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310827046.XA CN116541420B (zh) | 2023-07-07 | 2023-07-07 | 向量数据的查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116541420A CN116541420A (zh) | 2023-08-04 |
CN116541420B true CN116541420B (zh) | 2023-09-15 |
Family
ID=87454603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310827046.XA Active CN116541420B (zh) | 2023-07-07 | 2023-07-07 | 向量数据的查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116541420B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6347314B1 (en) * | 1998-05-29 | 2002-02-12 | Xerox Corporation | Answering queries using query signatures and signatures of cached semantic regions |
CN105868414A (zh) * | 2016-05-03 | 2016-08-17 | 湖南工业大学 | 一种聚类分离的分布式索引方法 |
WO2018036549A1 (zh) * | 2016-08-25 | 2018-03-01 | 中兴通讯股份有限公司 | 分布式数据库查询方法、装置及管理系统 |
WO2019127299A1 (zh) * | 2017-12-25 | 2019-07-04 | 深圳云天励飞技术有限公司 | 数据查询方法、电子设备及存储介质 |
CN112131260A (zh) * | 2020-09-30 | 2020-12-25 | 中国民航信息网络股份有限公司 | 一种数据查询方法及装置 |
WO2021081913A1 (zh) * | 2019-10-31 | 2021-05-06 | 北京欧珀通信有限公司 | 向量查询方法、装置、电子设备及存储介质 |
CN114817293A (zh) * | 2022-03-31 | 2022-07-29 | 华能信息技术有限公司 | 一种基于分布式sql的数据查询方法及系统 |
CN114896249A (zh) * | 2022-05-18 | 2022-08-12 | 河北大学 | 非平衡区域树索引结构以及n维空间逆近邻查询算法 |
CN115203383A (zh) * | 2021-04-13 | 2022-10-18 | 澜起科技股份有限公司 | 用于在候选向量集中查询相似向量的方法和装置 |
CN115357609A (zh) * | 2022-10-24 | 2022-11-18 | 深圳比特微电子科技有限公司 | 物联网数据的处理方法、装置、设备和介质 |
CN115757465A (zh) * | 2022-11-21 | 2023-03-07 | 华为技术有限公司 | 一种向量检索方法及装置 |
CN116166690A (zh) * | 2023-03-03 | 2023-05-26 | 杭州电子科技大学 | 一种面向高并发场景的混合向量检索方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100429792B1 (ko) * | 2000-11-15 | 2004-05-03 | 삼성전자주식회사 | 특징 벡터 공간의 인덱싱 방법 및 검색 방법 |
US8423547B2 (en) * | 2011-04-08 | 2013-04-16 | Microsoft Corporation | Efficient query clustering using multi-partite graphs |
-
2023
- 2023-07-07 CN CN202310827046.XA patent/CN116541420B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6347314B1 (en) * | 1998-05-29 | 2002-02-12 | Xerox Corporation | Answering queries using query signatures and signatures of cached semantic regions |
CN105868414A (zh) * | 2016-05-03 | 2016-08-17 | 湖南工业大学 | 一种聚类分离的分布式索引方法 |
WO2018036549A1 (zh) * | 2016-08-25 | 2018-03-01 | 中兴通讯股份有限公司 | 分布式数据库查询方法、装置及管理系统 |
WO2019127299A1 (zh) * | 2017-12-25 | 2019-07-04 | 深圳云天励飞技术有限公司 | 数据查询方法、电子设备及存储介质 |
WO2021081913A1 (zh) * | 2019-10-31 | 2021-05-06 | 北京欧珀通信有限公司 | 向量查询方法、装置、电子设备及存储介质 |
CN112131260A (zh) * | 2020-09-30 | 2020-12-25 | 中国民航信息网络股份有限公司 | 一种数据查询方法及装置 |
CN115203383A (zh) * | 2021-04-13 | 2022-10-18 | 澜起科技股份有限公司 | 用于在候选向量集中查询相似向量的方法和装置 |
CN114817293A (zh) * | 2022-03-31 | 2022-07-29 | 华能信息技术有限公司 | 一种基于分布式sql的数据查询方法及系统 |
CN114896249A (zh) * | 2022-05-18 | 2022-08-12 | 河北大学 | 非平衡区域树索引结构以及n维空间逆近邻查询算法 |
CN115357609A (zh) * | 2022-10-24 | 2022-11-18 | 深圳比特微电子科技有限公司 | 物联网数据的处理方法、装置、设备和介质 |
CN115757465A (zh) * | 2022-11-21 | 2023-03-07 | 华为技术有限公司 | 一种向量检索方法及装置 |
CN116166690A (zh) * | 2023-03-03 | 2023-05-26 | 杭州电子科技大学 | 一种面向高并发场景的混合向量检索方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于数据网格环境的k近邻查询;庄毅;庄越挺;吴飞;;计算机研究与发展(第11期) * |
Also Published As
Publication number | Publication date |
---|---|
CN116541420A (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947904B (zh) | 一种基于Spark环境的偏好空间Skyline查询处理方法 | |
US5852821A (en) | High-speed data base query method and apparatus | |
CN107391554B (zh) | 高效分布式局部敏感哈希方法 | |
US7558802B2 (en) | Information retrieving system | |
Lu et al. | Flexible and efficient resolution of skyline query size constraints | |
CN111868710B (zh) | 搜索大规模非结构化数据的随机提取森林索引结构 | |
CN109325032B (zh) | 一种索引数据存储及检索方法、装置及存储介质 | |
CN106991141B (zh) | 一种基于深度剪枝策略的关联规则挖掘方法 | |
CN111801665A (zh) | 用于大数据应用的分层局部敏感哈希(lsh)分区索引 | |
EP1341098A2 (en) | Getpage - Workload based Index Optimizer | |
Chen et al. | Efficiently evaluating skyline queries on RDF databases | |
Chen et al. | Semi-convex hull tree: Fast nearest neighbor queries for large scale data on GPUs | |
CN116701469B (zh) | 基于缓存优化hnsw算法的向量数据查询方法 | |
US11068484B2 (en) | Accelerating queries with complex conditions using zone map enhancements | |
Pan et al. | Vector Database Management Techniques and Systems | |
Yukinawa et al. | Optimal aggregation of binary classifiers for multiclass cancer diagnosis using gene expression profiles | |
CN112612790B (zh) | 卡号配置方法、装置、设备及计算机存储介质 | |
CN116541420B (zh) | 向量数据的查询方法 | |
CN112214521A (zh) | 规则查询方法、装置、设备及计算机存储介质 | |
Kontaki et al. | Continuous top-k dominating queries in subspaces | |
CN112199408A (zh) | 参考距离相似性搜索 | |
CN113590889B (zh) | 度量空间索引树构建方法、装置、计算机设备及存储介质 | |
Mohamed et al. | Quantized ranking for permutation-based indexing | |
Zhang et al. | An efficient optimization approach for top-k queries on uncertain data | |
Choi et al. | Optimization of dominance testing in skyline queries using decision trees |
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 |