【发布时间】:2013-05-05 13:22:09
【问题描述】:
我构建了存储数百万个浮点向量的应用程序,每个向量有大约 100 个维度。使用查询向量,我需要在这些向量中搜索最近的 k 个(欧几里得)匹配。运行时间必须比扫描所有数百万个向量更快。 “向量”是指在线性代数术语中,大约 100 个浮点数的列表,即[0.3, -15.7, 0.004, 457.1, ...]
我知道 MySQL 和 MongoDB 等数据库提供适用于二维的空间索引。有没有办法通过复合索引使其适应更多维度?还是有其他数据存储支持更多维度的索引?
【问题讨论】:
-
当您说“向量”和“最接近”时,您能准确定义您的意思吗? - 我的理解是向量只是一个方向,因此不适合空间索引。您是否假设所有向量都来自原点,并且“最近”将通过两个给定向量的端点之间的距离来衡量?
-
我猜在“向量作为元素序列”和“向量作为空间框架中的方向”这两种含义之间,他的真正意思是“向量作为空间框架中的位置”
-
已澄清问题。如果还不清楚,请告诉我。
标签: database algorithm search vector geospatial