@djacode

Как сделать чтобы sphinx выдавал сперва точные совпадения а потом остальные?

Сортировка на php вполне справляется, но хочется как то сортировать на уровне бд. Не пойму что и куда копать для того чтобы сфинкс выдавал сперва точные совпадения а потом остальные.
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
grantur5707
@grantur5707
Full Stack Web Developer
Используйте оператор WEIGHT() для приоритизации точных совпадений:
SELECT *, WEIGHT() as relevance 
FROM my_index 
WHERE MATCH('^"точный запрос"$ | запрос')
ORDER BY relevance DESC;


Можно также использовать операторы ORDER BY для сортировки по релевантности и FIELD() для повышения релевантности точных совпадений
SELECT * 
FROM my_index 
WHERE MATCH('запрос') 
ORDER BY FIELD(my_column, 'точный запрос') DESC, relevance DESC;
Ответ написан
Ваш ответ на вопрос

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

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