MySQL全文查询问题

MySQL全文查询问题,mysql,sql,full-text-search,full-text-indexing,Mysql,Sql,Full Text Search,Full Text Indexing,我试图使用mysql全文查询,但不幸的是,它返回的结果是空的,即使表中包含这些输入关键字 表:用户技能: 索引: 查询: 在这里,一旦我运行了上面的查询,所有的DJ行都不会返回。表中有3行,其中is的值为dj 您的搜索词太短了 就像mysql文档一样 在全文搜索中,某些单词被忽略: 任何太短的词都会被忽略。全文搜索找到的单词的默认最小长度为三个字符 InnoDB搜索索引,或MyISAM的四个字符。你可以控制 通过在创建前设置一个配置选项来切断 索引:用于innodb搜索的innodb_ft_mi

我试图使用mysql全文查询,但不幸的是,它返回的结果是空的,即使表中包含这些输入关键字

表:用户技能:

索引:

查询:


在这里,一旦我运行了上面的查询,所有的DJ行都不会返回。表中有3行,其中is的值为dj

您的搜索词太短了

就像mysql文档一样

在全文搜索中,某些单词被忽略:

任何太短的词都会被忽略。全文搜索找到的单词的默认最小长度为三个字符 InnoDB搜索索引,或MyISAM的四个字符。你可以控制 通过在创建前设置一个配置选项来切断 索引:用于innodb搜索的innodb_ft_min_令牌_大小配置选项 索引,或MyISAM的ft_min_word_len

布尔全文搜索具有以下特征:

他们不使用50%的阈值

它们不会自动按相关性降低的顺序对行进行排序。 您可以从前面的查询结果中看到这一点:包含 最高关联性是两次包含“MySQL”的,但实际上是 排在最后,而不是第一

即使没有全文索引,它们也可以工作,尽管搜索 以这种方式执行将非常缓慢

应用最小和最大字长全文参数


你的搜索词太短了

就像mysql文档一样

在全文搜索中,某些单词被忽略:

任何太短的词都会被忽略。全文搜索找到的单词的默认最小长度为三个字符 InnoDB搜索索引,或MyISAM的四个字符。你可以控制 通过在创建前设置一个配置选项来切断 索引:用于innodb搜索的innodb_ft_min_令牌_大小配置选项 索引,或MyISAM的ft_min_word_len

布尔全文搜索具有以下特征:

他们不使用50%的阈值

它们不会自动按相关性降低的顺序对行进行排序。 您可以从前面的查询结果中看到这一点:包含 最高关联性是两次包含“MySQL”的,但实际上是 排在最后,而不是第一

即使没有全文索引,它们也可以工作,尽管搜索 以这种方式执行将非常缓慢

应用最小和最大字长全文参数


全文索引对于您尝试执行的操作来说是错误的方法。但是,您的具体问题是最小字长,默认情况下为3或4,具体取决于结尾。具体而言,这在中进行了解释

重置值后,需要重新创建索引

我怀疑你是想变得聪明。您可能听过这样的建议:不要将事物列表存储在分隔字符串中。但是你反倒反驳了啊,但是我可以用全文索引。您可以,尽管您会发现更复杂的查询不能很好地优化


只要把它做好。创建关联表user_skills,每个用户和用户拥有的每个技能各有一行。您会发现在查询中使用它、防止重复、优化查询等都比较容易。

对于您尝试执行的操作,全文索引是错误的方法。但是,您的具体问题是最小字长,默认情况下为3或4,具体取决于结尾。具体而言,这在中进行了解释

重置值后,需要重新创建索引

我怀疑你是想变得聪明。您可能听过这样的建议:不要将事物列表存储在分隔字符串中。但是你反倒反驳了啊,但是我可以用全文索引。您可以,尽管您会发现更复杂的查询不能很好地优化


只要把它做好。创建关联表user_skills,每个用户和用户拥有的每个技能各有一行。你会发现它更容易在查询中使用,防止重复,优化查询,等等。

可能是你的术语是tooo shortcull可能是你的术语是toooshort@TimBiegeleisen .. 是的,我知道答案是针对一个将军pourpose…anayway。。答案更新删除了stopword的参考。。谢谢你suggestion@TimBiegeleisen .. 是的,我知道答案是针对一个将军pourpose…anayway。。答案更新删除了stopword的参考。。谢谢你的建议
+----+----------------------------------------------+
| id |                    skills                    |
+----+----------------------------------------------+
|  1 | Dance Performer,DJ,Entertainer,Event Planner |
|  2 | Animation,Camera Operator,Film Direction     |
|  3 | DJ                                           |
|  4 | Draftsman                                    |
|  5 | Makeup Artist                                |
|  6 | DJ,Music Producer                            |
+----+----------------------------------------------+  
SELECT id,skills 
FROM user_skills 
WHERE ( MATCH (skills) AGAINST ('+dj' IN BOOLEAN MODE))