Database 如何使用数据库引擎找到最小的欧几里德矢量差?

Database 如何使用数据库引擎找到最小的欧几里德矢量差?,database,search,vector,Database,Search,Vector,我想在数据库中存储数千~100个元素向量,然后我需要搜索差异最小的记录 e、 g.比较[4,9,3]和[5,7,2]时,取元素差异:[-1,2,1],然后计算:sqrt(1+4+1)= 我需要能够搜索包含此最低值的记录 我不认为我可以在MySQL中高效地运行。我听说Solr或Elastisearch可能会提供一个解决方案;有人能给我指一指这种搜索如何(有效地)进行的例子吗?我想你的问题的答案是 但这也很有趣 不幸的是,通常您必须将输入向量与数据库中的所有其他向量进行比较。 也许,如果您对数据了解

我想在数据库中存储数千~100个元素向量,然后我需要搜索差异最小的记录

e、 g.比较
[4,9,3]
[5,7,2]
时,取元素差异:
[-1,2,1]
,然后计算:sqrt(1+4+1)=

我需要能够搜索包含此最低值的记录


我不认为我可以在MySQL中高效地运行。我听说Solr或Elastisearch可能会提供一个解决方案;有人能给我指一指这种搜索如何(有效地)进行的例子吗?

我想你的问题的答案是

但这也很有趣

不幸的是,通常您必须将输入向量与数据库中的所有其他向量进行比较。 也许,如果您对数据了解得更多,您可以将数据分离为更小的向量子集,从而降低比较的复杂性

在PostgreSQL数据库中,您可以使用编写自己的函数,如或使用。当GPU可用时,您可以在此查看PostgreSQL的扩展