database - 结合地理空间索引的多维搜索

标签 database algorithm search vector geospatial

我构建了存储数百万个浮点向量的应用程序,每个向量大约有 100 个维度。使用查询向量,我需要在这些向量中搜索 k 个最近的(欧几里德)匹配项。运行时间必须比扫描所有数百万个向量更快。我所说的“向量”是指线性代数术语中包含约 100 个 float 的列表,即 [0.3, -15.7, 0.004, 457.1, ...]

我知道 MySQL 和 MongoDB 等数据库提供适用于二维的空间索引。有没有办法通过复合索引使它适应更多维度?还是有其他数据存储支持更多维度的索引?

最佳答案

如果您正在寻找精确匹配,100 个维度就很多了。如果您准备接受近似匹配,可以使用一类 Locality-Sensitive-Hashing 方案。您可以为您的数据集生成一个散列或一系列散列值,并使用普通数据库或二维空间数据库根据散列值查找匹配项。一个引用是 http://people.csail.mit.edu/indyk/p117-andoni.pdf .

关于database - 结合地理空间索引的多维搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16489357/

相关文章:

php - 在elasticsearch中使用PHP客户端库设置索引别名?

database - 高性能网站

php - 使用 MySQL 和 PHP 进行特定模式搜索 - 应该怎么做?

algorithm - 在另一个字符串中找到最大相似子串

algorithm - 为什么骑士不覆盖所有的 table ?

search - youtube api v3 搜索从 youtube 网站返回不同的结果

python - Django 使用外键添加到数据库,同时仍显示来自其他模型的信息

mysql - 简单的sql查询返回零行

algorithm - 给定边长的网格多边形面积

ruby-on-rails - 搜索多列-Rails