PostgreSQL: возможно ли построить значение tsvector вручную? - PullRequest
1 голос
/ 10 января 2020

Я хочу реализовать информационно-поисковую систему, которая использует модель векторного пространства, но с многоточечными токенами и пользовательской функцией взвешивания терминов.

Я рассматриваю возможность создания моего инвертированного индекса в PostgreSQL вместо файла система. Я читал об индексе GIN, который строит такой индекс по столбцу tsvector.

Могу ли я создавать значения tsvector вручную, не вызывая функцию to_tsvector, чтобы я мог построить свой "пользовательский" вектор с пользовательскими токенами и пользовательскими весами?

1 Ответ

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

Вы можете сделать вектор вручную. Но, насколько я знаю, вы можете назначить только 4 различных веса, A, B, C или D. Для того, чтобы соединить их в один токен, нужно заключить в одинарные кавычки несколько слов.

select $$'two words':1c oneword$$::tsvector;
         tsvector         
--------------------------
 'oneword' 'two words':1C
...