我使用以下调用从数据库获取信息:
select *
from submissions
where
match( description ) against ('+snowboard' in boolean mode )
and (!disabled or disabled='n')
order by datelisted desc limit 30
这意味着描述中带有“snowboard”的所有内容都已找到。现在问题来了:
select *
from submissions
where
match( description ) against ('+snowboard +mp4' in boolean mode )
and (!disabled or disabled='n')
order by datelisted desc limit 30
由于某种原因会忽略 +mp4 并返回与第一个查询相同的内容
select *
from submissions
where
match( description ) against ('+mp4' in boolean mode )
不返回任何内容,所以基本上看起来它在搜索中被忽略了
有人知道如何解决这种行为吗?
最佳答案
mysql的 boolean 模式只会匹配超过一定长度的单词。并且 mp4
太短。你必须重新编译 mysql 才能改变阈值
编辑:事实证明,现在可以通过配置文件进行设置,请参阅 http://dev.mysql.com/doc/refman/5.0/en/fulltext-fine-tuning.html供进一步引用
关于MySQL:意外行为 'in boolean mode',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2260827/