Mysql 全文多字符串搜索
对于给定的标签列(id:167),该列等于“头发修剪和颜色” 正在尝试找出以下SQL语句输出0的原因:Mysql 全文多字符串搜索,mysql,wildcard,Mysql,Wildcard,对于给定的标签列(id:167),该列等于“头发修剪和颜色” 正在尝试找出以下SQL语句输出0的原因: SELECT MATCH(tags) AGAINST ('+hair* +cut*' IN BOOLEAN MODE) AS relevance FROM listings WHERE id = 167 而下面给定的SQL返回1: SELECT MATCH(tags) AGAINST ('+hair* +cut' IN BOOLEAN MODE) AS relevance FROM list
SELECT MATCH(tags) AGAINST ('+hair* +cut*' IN BOOLEAN MODE) AS relevance FROM listings WHERE id = 167
而下面给定的SQL返回1:
SELECT MATCH(tags) AGAINST ('+hair* +cut' IN BOOLEAN MODE) AS relevance FROM listings WHERE id = 167
提前感谢您的帮助。MySQL全文搜索将忽略3个字符或更少的单词,除非您更改了最小长度变量。我认为这就是问题的根源。通配符在长度为4个字符或更长的单词中查找cut作为根,但未找到任何。而当你在搜索中没有通配符时,它会被忽略,因为它太短了 要查找较短的单词,可以在选项文件中更改innodb_ft_min_token_size变量(如果使用innodb)或ft_min_word_len变量(如果使用myisam)
请参阅此处的详细信息:MySQL全文搜索将忽略3个字符或更少的单词,除非您更改了最小长度变量。我认为这就是问题的根源。通配符在长度为4个字符或更长的单词中查找cut作为根,但未找到任何。而当你在搜索中没有通配符时,它会被忽略,因为它太短了 要查找较短的单词,可以在选项文件中更改innodb_ft_min_token_size变量(如果使用innodb)或ft_min_word_len变量(如果使用myisam)
请参阅此处的详细信息:MySQL全文搜索将忽略3个字符或更少的单词,除非您更改了最小长度变量。我认为这就是问题的根源。通配符在长度为4个字符或更长的单词中查找cut作为根,但未找到任何。而当你在搜索中没有通配符时,它会被忽略,因为它太短了 要查找较短的单词,可以在选项文件中更改innodb_ft_min_token_size变量(如果使用innodb)或ft_min_word_len变量(如果使用myisam)
请参阅此处的详细信息:MySQL全文搜索将忽略3个字符或更少的单词,除非您更改了最小长度变量。我认为这就是问题的根源。通配符在长度为4个字符或更长的单词中查找cut作为根,但未找到任何。而当你在搜索中没有通配符时,它会被忽略,因为它太短了 要查找较短的单词,可以在选项文件中更改innodb_ft_min_token_size变量(如果使用innodb)或ft_min_word_len变量(如果使用myisam)
请参阅此处的更多信息:尽管所使用的示例词不是停止词,但请注意MySQL也会查看这些词并忽略它们:没问题!很高兴我能提供帮助。尽管使用的示例词不是停止词,但MySQL也会关注这些词并忽略它们:没问题!很高兴我能提供帮助。尽管使用的示例词不是停止词,但MySQL也会关注这些词并忽略它们:没问题!很高兴我能提供帮助。尽管使用的示例词不是停止词,但MySQL也会关注这些词并忽略它们:没问题!很高兴我能帮忙。