SQLRU.net
Разработка приложений баз данных

Начало » Использование СУБД » PostgreSQL » Как создать hash-индекс для типа вектор? (Функцию ему подавай...)
Как создать hash-индекс для типа вектор? [сообщение #5774] Thu, 28 November 2024 12:52 Переход к предыдущему сообщению
DaniilGray в настоящее время не в онлайне  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]

Известить модератора

 
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Сообщение не прочитано
Предыдущая тема: The Internals of PostgreSQL
Следующая тема: Ошибка кода
Переход к форуму:
  


Текущее время: Wed Dec 04 22:11:10 GMT+3 2024

Общее время, затраченное на создание страницы: 0.00972 секунд