Предположим, у меня есть два столбца, ключевые слова и контент. У меня есть полный текст для обоих. Я хочу, чтобы строка с foo в ключевых словах имела большую релевантность, чем строка с foo в контенте. Что мне нужно сделать, чтобы заставить MySQL весить совпадения в ключевых словах выше, чем в содержании?
Я использую синтаксис "match to".
РЕШЕНИЕ:
Было возможно сделать эту работу следующим образом:
SELECT *,
CASE when Keywords like '%watermelon%' then 1 else 0 END as keywordmatch,
CASE when Content like '%watermelon%' then 1 else 0 END as contentmatch,
MATCH (Title, Keywords, Content) AGAINST ('watermelon') AS relevance
FROM about_data
WHERE MATCH(Title, Keywords, Content) AGAINST ('watermelon' IN BOOLEAN MODE)
HAVING relevance > 0
ORDER by keywordmatch desc, contentmatch desc, relevance desc