Php MySQL全文搜索仅在布尔模式下工作。如何获得相关性?

Php MySQL全文搜索仅在布尔模式下工作。如何获得相关性?,php,mysql,boolean,full-text-search,Php,Mysql,Boolean,Full Text Search,我想在自然语言模式下搜索,按相关性对结果排序,但我的查询仅适用于布尔模式选择器。如果使用不带布尔值的查询,则不会得到任何结果。你知道为什么这样不行吗?或者知道如何通过与BOOELAN的相关性(首先是最匹配的关键字)获得结果吗 我的问题是: SELECT *, MATCH(md.keywords) AGAINST('$meta[keywords]' IN BOOLEAN MODE) AS score FROM meta_data AS md INNER JOIN sites AS si ON

我想在自然语言模式下搜索,按相关性对结果排序,但我的查询仅适用于布尔模式选择器。如果使用不带布尔值的查询,则不会得到任何结果。你知道为什么这样不行吗?或者知道如何通过与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`)
将您的查询更改为

 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

将返回搜索词的相关性得分,并

 ORDER BY score DESC

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

afaik您无法在布尔模式下获得相关性,即使名称表明它将返回true或false这是您需要的:我尝试了查询扩展,但也没有显示结果。仍然不知道为什么在自然语言模式下搜索不起作用。我发现我正在使用的脚本使用PDO获取数据:$conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_mode,PDO::FETCH_ASSOC);这可能是自然语言模式下全文搜索不起作用的原因吗?可能是。。。试着不使用PDO,看看吧,我发现:不应该为所有列更改全文索引表。仅针对MATCH子句中提到的列。所以在使用:ALTERTABLE meta_data添加全文(关键字)后,它现在就可以工作了!很高兴听到:)
 ORDER BY score DESC