我们有一个带有全文索引的列,并且在布尔模式下将'asp.net‘与该列进行匹配。我们知道这个列包含'asp.net‘值的记录,但是查询不返回任何记录。
我们没有修改任何与全文索引相关的MySQL配置指令。我认为全文索引的默认最小字长是3或4(当然小于7),所以这个查询仍然应该返回至少一条记录。
我们还遗漏了什么吗?任何帮助都是非常感谢的!
发布于 2011-04-25 04:19:55
最后,我问了一个DBA,他说逗号在MySQL中被识别为一个单词分隔符。因此,这意味着它正在寻找"asp“和"net",这两个词都在4个字符下,以便将单词包含在全文索引中。我将配置指令ft_min_word_len=3添加到my.cnf,重新启动mysqld,并在表上重新构建全文索引。现在,使用MATCH(column-name) AGAINST ('+asp +net' IN BOOLEAN MODE);可以找到正确的记录。
谢谢大家的帮助!
https://dba.stackexchange.com/questions/2263
复制相似问题