キーワードとコンテンツの2つの列があるとします。両方にフルテキストインデックスがあります。キーワードにfooが含まれる行は、コンテンツにfooが含まれる行よりも関連性が高くなります。MySQLがコンテンツの一致よりもキーワードの一致に重みを付けるには、何をする必要がありますか?
「一致」構文を使用しています。
解決:
この作業を次の方法で行うことができました。
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