在我试图通过相关性返回全文搜索结果时,我没有得到期望的结果。下面是一个实际的输出查询示例:mysql fulltext布尔搜索 - 按相关性排序
SELECT *,
((9 * (MATCH(title) AGAINST ('"apple 8"' IN BOOLEAN MODE))) +
(8 * (MATCH(title) AGAINST ('+apple +8' IN BOOLEAN MODE))) +
(7 * (MATCH(title) AGAINST ('apple* 8 ' IN BOOLEAN MODE))) +
(6 * (MATCH(description) AGAINST ('"apple 8"' IN BOOLEAN MODE))) +
(5 * (MATCH(description) AGAINST ('+apple +8 apple* 8 ' IN BOOLEAN MODE)))) as relevance
FROM items
WHERE status='1'
AND ((MATCH(title, description) AGAINST ('"apple 8" +apple +8 apple* 8 ' IN BOOLEAN MODE)))
ORDER BY cat_featured DESC
, relevance DESC
我敢肯定,这可能是全乱了,但我已经尝试了不同的设置和继续得到同样的结果......在这个例子中,含有“苹果项目“标题中的”8“被返回55次结果中的第17次,而不是像我希望的那样是第1次,因为它是唯一具有标题中两个术语的结果。我哪里错了?
我绝不是专家,但你可能想将你的全文搜索,而不是使用单独的那些负载。我问了一个问题[这里](http://stackoverflow.com/questions/5417792/normalise-mysql-fulltext-score),这可能有助于返回每一行的相关性。 – Bojangles
非常感谢您的帮助。不幸的是,你的问题并没有让我更清楚......我发现这个东西令人难以置信的混乱!我刚开始时只有两组比赛(标题为1,描述为1),并且获得了相同的输出,所以我一直在玩弄它,试图弄清楚如何操纵结果的顺序。第一部分工作(精确匹配首先返回)。我不明白如何得到包含这两个词的结果。 – Jen
有很多东西让我不知所措 - 你并不孤单。不幸的是,MySQL的更高级功能就是其中之一。 – Bojangles