Начало » Использование СУБД » PostgreSQL » Как создать hash-индекс для типа вектор? (Функцию ему подавай...)
Как создать hash-индекс для типа вектор? [сообщение #5774] |
Thu, 28 November 2024 12:52 |
DaniilGray
Сообщений: 17 Зарегистрирован: October 2024
|
Junior Member |
|
|
Есть у меня в СУБД Postgres тип vector (он же pgvector).
Для этого типа строятся только индексы типа hnsw. Ну, построили. Но при попытке найти в таблице ближайших соседей указанного вектора - индекс не используется, и происходит последовательное чтение таблицы, а индекс игнорится. В этих наших интернетах прочёл, что это для hnsw нормально.
Пробовал построить индекс типа IVVFLAT - процесс вылетел в процессе с жалобой на нехватку памяти. При том, что число строк всего около 120 тысяч.
Старый добрый B-tree не строится - длина поля ему слишком большая.
Ладно, думаю, построю HASH-индекс.
И тут подстава - не понятно Postgres, какую же ему функцию использовать для вычисления хэша вектора.
Вот и вопросы:
1) какую функцию ему подсовывать для вычисления хэша по вектору?
2) где её брать?
3) как её подсунуть Postgres?
4) как Postgres объяснить, что именно эту функцию надо брать при создании индекса по векторам?
5) и есть ли смысл так заморачиваться? Будет ли этот индекс использоваться?
[Обновления: Thu, 28 November 2024 13:02] Известить модератора
|
|
|
|
|
|
Переход к форуму:
Текущее время: Mon Dec 09 22:24:33 GMT+3 2024
Общее время, затраченное на создание страницы: 0.01094 секунд
|