SELECT * FROM mytable WHERE match(fieldname) against('spa')我不明白为什么这个查询没有返回任何结果。它应该至少找到10行包含单词spa的行。Spa不是一个关键词/停止词,对吧?
发布于 2012-03-28 22:25:09
要索引的单词的最小和最大长度由ft_min_word_len和ft_max_word_len系统变量定义。默认最小值为四个字符的;默认最大值取决于版本。如果更改任何一个值,都必须重新生成全文索引。例如,如果希望三个字符的单词可搜索,则可以通过将以下行放入选项文件中来设置ft_min_word_len变量:
[mysqld]
ft_min_word_len=3然后重新启动服务器并重新构建全文索引。请特别注意此列表后面的说明中关于myisamchk的说明。
来源:http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html
发布于 2012-03-28 22:25:15
不,ft_min_word_length不是默认的停用词之一,但是在MySQL全文搜索中有一个最小的词长度,我相信它的默认长度是4: spa
发布于 2012-03-28 22:26:41
搜索最小长度为四个字符。但是,搜索功能似乎可以更改
Fine-Tuning MySQL Full-Text Search
的全文搜索功能几乎没有用户可调的参数。如果您有MySQL源代码发行版,则可以对全文搜索行为进行更多控制,因为某些更改需要修改源代码。请参阅第2.17节“从源安装MySQL”。
请注意,全文搜索经过了仔细的调整,以获得最大的效率。在大多数情况下,修改默认行为实际上会降低有效性。除非您知道自己在做什么,否则不要更改MySQL源代码。
本节中介绍的大多数全文变量都必须在服务器启动时设置。需要重新启动服务器才能更改它们;在服务器运行时不能修改它们。
某些变量更改需要在表中重新生成全文索引。本节后面将给出执行此操作的说明。
要索引的单词的最小和最大长度由ft_min_word_len和ft_max_word_len系统变量定义。(请参阅第5.1.3节“服务器系统变量”。)默认最小值为四个字符;默认最大值取决于版本。如果更改任何一个值,都必须重新生成全文索引。例如,如果希望三个字符的单词可搜索,则可以通过将以下行放入选项文件中来设置ft_min_word_len变量:
[mysqld]
ft_min_word_len=3 然后重新启动服务器并重建全文索引。请特别注意此列表后面的说明中关于myisamchk的注释。
https://stackoverflow.com/questions/9909460
复制相似问题