假设我有两列,关键词和内容。我在两者之间建立了全文索引。我希望在关键词中具有foo的行比在内容中具有foo的行更具相关性。我需要做什么才能使MySQL加权关键词匹配高于内容匹配?
我正在使用"match against"语法。
解决方案:
我能够通过以下方式使其工作:
我正在使用"match against"语法。
解决方案:
我能够通过以下方式使其工作:
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
ORDER BY (rel1*1.5)+(rel2) DESC
吗?这样可以得到最高分数,从而更相关的内容排在前面。 - PanPipesDESC
,因为更高的相关性是更好的匹配。 - FlameWHERE MATCH (keyword) AGAINST ('西瓜') OR MATCH (content) AGAINST ('西瓜')
来避免重复的全文索引? - undefined