MySQL全文搜索仅适用于BOOLEAN模式。 如何获得相关性?
我想在自然语言模式下搜索以按相关性排序,但我的查询仅适用于BOOLEAN模式选择器。 如果我使用没有BOOLEAN的查询,我不会得到任何结果。 任何想法为什么这不起作用? 或想法如何通过相关性(首先匹配最多的关键字)与BOOELAN得到结果?
我的查询:
SELECT *,
MATCH(md.keywords) AGAINST('$meta[keywords]' IN BOOLEAN MODE) AS score
FROM
meta_data AS md
INNER JOIN
sites AS si ON md.domain = si.domain && si.domain != '$data[domain]'
WHERE
MATCH(md.keywords) AGAINST('$meta[keywords]' IN BOOLEAN MODE)
ORDER BY score Desc
LIMIT 25
数据库是MyISAM
,我已经改变了全表搜索全文
FULLTEXT KEY `title` (`title`,`description`,`keywords`)
将您的查询改为
SELECT *, MATCH(md.keywords) AGAINST('$meta[keywords]') AS score
FROM
meta_data AS md
INNER JOIN sites AS si ON md.domain = si.domain && si.domain != '$data[domain]'
WHERE
MATCH(md.keywords) AGAINST('$meta[keywords]' IN BOOLEAN MODE)
ORDER BY score DESC
LIMIT 25
该
MATCH(md.keywords) AGAINST('$meta[keywords]') AS score
将返回搜索词条的相关度分数
ORDER BY score DESC
将以降序显示您的结果(即最高分)
链接地址: http://www.djcxy.com/p/13107.html上一篇: MySQL fulltext search only works in BOOLEAN Mode. How get relevancy?