什么是在Postgres中存储矢量数据的有效方法?

Kha*_*tor 1 database postgresql postgis vector machine-learning

我有一些矢量,来自嵌入面,我想将它们存储在数据库中.我需要的是能够在给定嵌入式面的情况下从数据库中找到类似的向量.

我曾尝试在Postgres中使用数组类型,但不支持减法.

  1. 短期问题是:我们能否在Postgres的数据库级别有效地执行数组减法?
  2. 长期问题是:这种类型的数据和计算是否有更好的数据库系统?

谢谢

--Update--

具体问题是,假设我在表格中有一些矢量数据

{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
Run Code Online (Sandbox Code Playgroud)

我想弄清楚这三个向量中的哪一个与向量最接近(在欧几里德距离内){5, 5, 5}.

所需的操作首先减去2个向量,然后找出差异的长度 ||{5, 5, 5} - {4, 5, 6}||_2

在我的场景中,矢量将具有128个维度.

Bil*_*son 6

看来你想使用PostGIS这是PostgresQL的一个简单扩展,它允许一大堆几何数据类型扩展.(点,矢量,弧等)