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 отвечает за поднятие точных соответствий вверх
  • Вопрос задан
  • 7052 просмотра
Решения вопроса 1
kenny_opennix
@kenny_opennix
Я думаю Вам поможет
sphinxsearch.com/docs/2.1.2/weighting.html
В частности SPH_RANK_EXPR
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
dmrt
@dmrt
А как сделать так, чтобы выводились только точные совпадения? Ни знаком больше, ни знаком меньше?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Studio Mango Краснодар
от 80 000 до 150 000 руб.
MegaResearch Москва
от 100 000 до 200 000 руб.