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