我没有得到以下查询的任何结果:
"SELECT * FROM test2 WHERE MATCH(txt) AGAINST('hello' IN BOOLEAN MODE)"
而test2看起来像:
id | txt
1 | ...
2 | ...
3 | ...
4 | ...
.. | ...
txt长度为30个字符(TEXT)和全文。我有大约16条记录(微小的数据库),并且几乎将文字hello放在txt中的每条记录中以及其他单词。我只是想知道全文搜索是如何工作的。所以我得到零结果,我无法理解为什么。
答案 0 :(得分:2)
有两个原因导致您没有得到任何结果:
原因1:您的搜索字'hello'出现在太多行中。
自然语言搜索解释 搜索字符串作为短语 自然的人类语言(一个短语) 自由文本)。没有什么特别的 运营商。禁用词列表适用。 另外,存在的词语 考虑50%或更多行 常见且不匹配。全文 搜索是自然语言搜索 如果没有给出修饰语。
来源:http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
原因2:您的搜索字'hello'位于停用词列表中。 禁用词列表中的任何单词都不会匹配!
来源:http://dev.mysql.com/doc/refman/5.1/en/fulltext-stopwords.html