Есть какой то способ повысить вес определенного ключевого слова?
P.S. в документации освещены вопросы ранжирования, есть упоминание пользовательских фукнций ранжирования, но к сожалению не хватает практических примеров. Пытался написать пользовательскую функцию - падает с ошибкой.
вы можете попробовать использовать полнотекстовый оператор MAYBE. Терм в этом операторе не создает матчинга сам по себе, но подмешиваясь к существующим матчам увеличивает их веса в случае полного совпадения.
Или перенести бренд в аттрибут и увеличивать вес в select list expression
SELECT *, if ( brand_attr_string=='pirelli', 10, 1) as multi, weight() as w, w*mult as wfinal ... order by wfinal desc
Спасибо за помощь.
Ваш пример мне помог.
Я сделал так:
Добавил поле custom_weight. При заполнении индекса выставляю коэффициент веса, если бренд, модель или набор параметров необходимо повысить в выдаче.
И уже в запросе:
SELECT name, custom_weight, weight()*custom_weight as weight
FROM tyres_search
WHERE MATCH(‘(195 60)’)
ORDER BY weight DESC LIMIT 5;