MIC
@MIC

Sphinx. Как придать вес для некоторых слов в запросе?

Я вывожу похожие посты и делаю это запросом
SELECT id, WEIGHT() as relevance FROM posts 
WHERE MATCH('(@content world|peace|leo)') 
ORDER BY relevance DESC 
OPTION ranker = 'bm25'

В этом случае всё работает хорошо, но ещё нужно добавлять темы от текущего пользователя и я хотел бы сделать что-то вроде
SELECT id, WEIGHT() as relevance FROM posts 
WHERE MATCH('(@content world|peace|leo) (@content_2 photography)') 
ORDER BY relevance DESC 
OPTION ranker = 'bm25', field_weights=(content=10,content_2=5)

Но как это сделать без дублирования `content` в `content_2`? Ведь это увеличит индекс в два раза.
  • Вопрос задан
  • 645 просмотров
Решения вопроса 1
GogElf
@GogElf
Хокаге
SELECT id, WEIGHT() as relevance FROM posts 
WHERE MATCH('(@content world|peace|leo^10) (@content photography^5)') 
ORDER BY relevance DESC 
OPTION ranker = 'bm25'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы