0
我有类似如下的MySQL查询:如何增加高级MySQL查询中的相关性值?
SELECT *, MATCH (`Description`) AGAINST ('+ipod +touch ' IN BOOLEAN MODE) * 8 + MATCH(`Description`) AGAINST ('ipod touch' IN BOOLEAN MODE) AS Relevance
FROM products WHERE (MATCH (`Description`) AGAINST ('+ipod +touch' IN BOOLEAN MODE) OR MATCH(`LongDescription`) AGAINST ('+ipod +touch' IN BOOLEAN MODE))
HAVING Relevance > 1
ORDER BY Relevance DESC
现在,我所做的查询也通过搜索UPC更先进:
SELECT *, MATCH (`Description`) AGAINST ('+ipod +touch ' IN BOOLEAN MODE) * 8 + MATCH(`Description`) AGAINST ('ipod touch' IN BOOLEAN MODE) + `UPC` = '123456789012' * 16 AS Relevance
FROM products WHERE (MATCH (`Description`) AGAINST ('+ipod +touch' IN BOOLEAN MODE) OR MATCH(`LongDescription`) AGAINST ('+ipod +touch' IN BOOLEAN MODE)) AND `UPC` = '123456789012'
HAVING Relevance > 1
ORDER BY Relevance DESC
那将返回结果,但是我在UPC上获得了成功的比赛并不会增加价值Relevance
。我只能进行像MATCH()AGAINST()这样的全文搜索的计算吗?
澄清:好的,所以我真正的问题是,为什么以下没有相关性> = 16?
SELECT `UPC`, `UPC` = '123456789012' * 16 AS Relevance FROM products WHERE `UPC` = '123456789012' HAVING Relevance > 1 ORDER BY Relevance DESC