首页 文章

MySQL全文搜索仅适用于BOOLEAN模式 . 如何获得相关性?

提问于
浏览
0

我想在自然语言模式中搜索按相关性排序结果,但我的查询仅适用于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 并且我已经更改了mysql表以进行全文搜索

FULLTEXT KEY `title` (`title`,`description`,`keywords`)

1 回答

  • 2

    将您的查询更改为

    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
    

    将按降序显示结果(即最高分)

相关问题