MySQL:意外行为 'in boolean mode'

标签 mysql boolean match

我使用以下调用从数据库获取信息:

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/

相关文章:

python - 如何通过mysql python将多个值(列表)插入数据库

php - 将 HTML 保存到数据库/SQL 中

javascript - 与特殊字符元字符匹配的正则表达式

python - 在 Python 中创建一个新文件,其中包含两个数据帧上的常见匹配项

python - Python 中使用正则表达式进行有序替换

mysql - Joomla 2.5 : You do not have access to the administrator section of this site

mysql - 两个值之间的 SQL 标准

c++ - bool 函数问题 - 总是返回 true?

java - 计算完美数

Javascript TRUE 和 "true"为什么有人使用字符串而不是 boolean 值?