Database 如何在PostgreSQL中高效地索引2000个值的向量并查找最近邻?

Database 如何在PostgreSQL中高效地索引2000个值的向量并查找最近邻?,database,postgresql,indexing,nearest-neighbor,r-tree,Database,Postgresql,Indexing,Nearest Neighbor,R Tree,我有超过2000个值的特征向量。例如,我有10000个向量,每个向量有2000个十进制值。我需要为它们建立索引,并为查询向量找到最近的邻居。我可以在PostgreSql中使用R树为它们编制索引吗?如果是,我们怎么做?或者是否有其他方法或任何其他数据库可以有效地做到这一点?2000维上的R树可能比顺序扫描糟糕得多。最好的方法可能是将表数据存储在一个索引中,以一种为计算速度预先组织好的格式,然后让自己扫描整个索引。这就是我们要做的(在概念上,索引的完整扫描。当然,数据的组织和计算是不同的。)如果弹性

我有超过2000个值的特征向量。例如,我有10000个向量,每个向量有2000个十进制值。我需要为它们建立索引,并为查询向量找到最近的邻居。我可以在PostgreSql中使用R树为它们编制索引吗?如果是,我们怎么做?或者是否有其他方法或任何其他数据库可以有效地做到这一点?

2000维上的R树可能比顺序扫描糟糕得多。最好的方法可能是将表数据存储在一个索引中,以一种为计算速度预先组织好的格式,然后让自己扫描整个索引。这就是我们要做的(在概念上,索引的完整扫描。当然,数据的组织和计算是不同的。)

如果弹性搜索是一个选项,请检查这一点。您可以在向量空间中进行分布式搜索:

您可能需要在PostgreSQL中实现自己的GiST索引。欧几里德,您是如何测量距离的?