Задать вопрос
Akuma
@Akuma
Веб-программист

Вывести точные совпадения в поиске Sphiinx на первое место?

Добрый день,

допустим мы ищем по фразе «история города».

Есть раздел сайта, который так и называется «История города», т.е. полное соответствие значению поля.
И есть раздел сайта, у которого в контенте много слов «история» и «город» в различных вариациях.

Sphinx определяет релевантность этого второго раздела выше чем первого. Впринципе, я его понимаю — там много совпадений, но мне нужно чтобы разделы со 100% совпадением поля с запросом выводились с самого начала.

Как такое можно реализовать?

Решение:
использовать такой вариант ранжирования:
$sphinxSearch->setRankingMode(SPH_RANK_EXPR, 'sum((4*lcs+2*(min_hit_pos==1)+exact_hit*100)*user_weight)*1000+bm25');

Именно exact_hit*100 отвечает за поднятие точных соответствий вверх
  • Вопрос задан
  • 7670 просмотров
Подписаться 15 Оценить 5 комментариев
Решения вопроса 1
kenny_opennix
@kenny_opennix
Я думаю Вам поможет
sphinxsearch.com/docs/2.1.2/weighting.html
В частности SPH_RANK_EXPR
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
dmrt
@dmrt
А как сделать так, чтобы выводились только точные совпадения? Ни знаком больше, ни знаком меньше?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы