Как рассчитать взвешенную оценку на основе полнотекстового поиска для разных столбцов и суммировать их в postgresql? - PullRequest
0 голосов
/ 29 января 2019

Я хочу рассчитать взвешенную оценку на основе полнотекстового поиска для определенных столбцов в таблице PostgreSQL.У меня есть три столбца в таблице (имя таблицы: люди) с названием местоположение, интересы и отрасли.Все столбцы содержат несколько данных, хранящихся в массиве.

Это прекрасно работает с MYSQL.Мне нужен аналогичный запрос в PostgreSQL.

select *, (MATCH (interest) AGAINST ('javascript python')*0.6
+ MATCH (location) AGAINST ('ahmedabad')*0.3
+ MATCH (industry) AGAINST ('IT services')*0.1) as score
FROM people order by score desc

Запрос должен возвращать оценку для каждой записи на основе полнотекстового поиска и веса для каждого столбца.

Match() иagainst() используются для полнотекстового поиска . Строка в аргументе against() ищет в индексированном столбце совпадения.Все слова, разделенные пробелом, рассматриваются как разные подстроки для полнотекстового поиска.

Для приведенного выше запроса ожидаемый результат должен быть: enter image description here

...