Ошибка при выполнении запроса Postgresql к столбцу типа данных Cube - PullRequest
1 голос
/ 13 января 2020

Я новичок в Postge sql. Я создал таблицу с полями (Id integer, name text, url text, vector cube) с именем images.

. Теперь я хочу найти K ближайших значений для новой переменной куба, используя оператор <-> (евклидово расстояние). Мой запрос выглядит следующим образом (я предположил, что столбец данных является 3D):

Select * 
from images 
order by vector <-> cube(array[0.5, 0.3, 0.2]) 
limit 5

Но возникает следующая ошибка:

ERROR:  operator does not exist: cube <-> cube
LINE 1: Select * from test order by data <-> cube(array[0.5, 0.3, 0.2...
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.
SQL state: 42883
Character: 38

Пожалуйста, помогите мне. Спасибо. Я использую Ubuntu 16.04.6 LTS и Postgresql версия 9.5.19.

Снимки экрана с моей таблицей и ошибкой приведены ниже:

enter image description here

enter image description here

1 Ответ

1 голос
/ 13 января 2020

Расширение cube в postgres 9.5 не имеет оператора <->. Вы можете использовать cube_distance вместо этого. Вот соответствующие документы:

https://www.postgresql.org/docs/9.5/cube.html

...