我已经查看了mysql的布尔全文搜索文档,并且写道,MATCH将返回一个浮点值,以及一个示例。在我发现对此状态的引用相同的其他任何地方,MATCH 将按相关性分数返回浮点数。
但是当我运行此查询时
select
match(j.name) against('banana* strawberr* coconut*' IN BOOLEAN MODE) as score
from juices j
order by score desc
我得到 0 或 1。
以下是一些得分为 1 的行:
"Banana and strawberry flavor"
"Apple and banana juice"
"Coconuts with pickles"
在我的理解中,"香蕉和草莓"行应该比其他两条得到更高的分数,因为有两个词匹配?
我刚刚在我的一个表上遇到了这种情况,其中另一个表按预期提供了结果。检查以验证您的表未设置为 MyISAM(仅在匹配时返回 1),您需要 InnoDB 获取匹配返回的浮点值,以便您可以按匹配的排名排序。