Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MYSQL匹配示例不工作。是";水疗中心;停止语?_Php_Mysql - Fatal编程技术网

Php MYSQL匹配示例不工作。是";水疗中心;停止语?

Php MYSQL匹配示例不工作。是";水疗中心;停止语?,php,mysql,Php,Mysql,我不明白为什么这个查询不返回任何结果。 它应该找到至少10行中有spa这个词。Spa不是关键字/停止词,是吗?要索引的词的最小和最大长度由ft_min_word_len和ft_max_word_len系统变量定义默认最小值为四个字符;默认最大值取决于版本。如果更改任一值,则必须重建全文索引。例如,如果希望搜索三个字符的单词,可以通过在选项文件中放置以下行来设置ft_min_word_len变量: SELECT * FROM mytable WHERE match(fieldname) again

我不明白为什么这个查询不返回任何结果。
它应该找到至少10行中有spa这个词。Spa不是关键字/停止词,是吗?

要索引的词的最小和最大长度由ft_min_word_len和ft_max_word_len系统变量定义默认最小值为四个字符;默认最大值取决于版本。如果更改任一值,则必须重建全文索引。例如,如果希望搜索三个字符的单词,可以通过在选项文件中放置以下行来设置ft_min_word_len变量:

SELECT * FROM mytable WHERE match(fieldname) against('spa')
然后重新启动服务器并重建全文索引。请特别注意本清单后面的说明中有关myisamchk的备注


来源:

不,spa不是默认的stopwords之一,但MySQL全文搜索中有一个最小字长,我相信默认为4:

搜索的最小字长为4个字符。然而,搜索功能似乎可以改变

MySQL的全文搜索功能几乎没有用户可调的参数。 如果您愿意,您可以对全文搜索行为施加更多的控制 拥有MySQL源代码分发版,因为某些更改需要源代码 代码修改。请参阅第2.17节“从源代码安装MySQL”

请注意,全文搜索是经过仔细调整的,以获得最佳效果 有效性在大多数情况下,修改默认行为可以 实际上会降低效率。不要更改MySQL源代码,除非 你知道你在做什么

本节中描述的大多数全文变量必须设置为 服务器启动时间。需要重新启动服务器才能更改它们;他们 无法在服务器运行时修改

某些变量更改需要在中重建全文索引 你的桌子。本章后面将给出执行此操作的说明 节


要编制索引的单词的最小和最大长度由 ft_min_word_len和ft_max_word_len系统变量。(见第节) 5.1.3“服务器系统变量”。)默认最小值为四个字符;默认最大值取决于版本。如果你改变 无论是哪个值,都必须重建全文索引。例如,如果 如果要搜索三个字符的单词,可以设置 通过在选项中输入以下行,可以使用ft_min_word_len变量 文件:

然后重新启动服务器并重建您的 全文索引。请特别注意以下关于myisamchk的评论: 此列表后面的说明


你不需要至少4个字符的单词来匹配吗?你在
字段名上有全文索引吗?专栏是否区分大小写?谢谢。这很有道理,但我不会重置系统变量,而是在代码中添加某些3个字符关键字的例外情况。
[mysqld]
ft_min_word_len=3
[mysqld] 
ft_min_word_len=3