Silentium
@Silentium

Взвешивание атрибутов в Sphinx?

Настраиваю поиск на сайте. Необходимо, чтобы документы с определенным булевым атрибутом уходили в конец списка, но при точном попадании были на первой странице.

Сейчас есть такое:
$sphinx->SetSortMode(SPH_SORT_EXTENDED, 'available DESC, priced DESC, @weight DESC');


Но хочется, чтобы страницы с атрибутом 0 не уходили в конец, а у них просто снижался вес.

Есть ли возможность такое реализовать? Режим поиска EXTENDED2.


Перелопатил гору документации, блогов, форумов, но ответа не нашел.
  • Вопрос задан
  • 4020 просмотров
Решения вопроса 1
Shedar
@Shedar
Формируете выражение, учитывающее значение атрибута и вес документа. Например что-то вроде
@weight*IF(@myAttr, 1, 0.3)
И используете SPH_SORT_EXPR для сортировки.
sphinxsearch.com/docs/manual-2.0.1.html#sort-expr
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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