美文网首页
mysql 设置全文索引遇到的几个坑

mysql 设置全文索引遇到的几个坑

作者: bulbuls | 来源:发表于2020-01-16 15:59 被阅读0次

    做了一个小项目,需要一个检索功能,考虑到项目的性质,不需要弄的太复杂,所以采用mysql全文索引来做,本来以为设置个fulltext全文索引就完事儿了,没想到坑是一个接一个,把遇到的坑写下来,做一个记录
    我的mysql版本:5.7.16 InnoDB; 注意:数据库版本要大于等于MySQL5.7.6,不然不支持InnoDB类型。
    找到需要添加索引的字段,设置全文索引,结果啥也搜索不出来。有一下原因
    一:mysql分词,默认4字符的问题。
    按照度娘的答案,在my.cnf文件中设置 ft_min_word_len=1,重启完全没有效果,俩个字的还是搜索不出来,原因是我的数据库是InnoDB,这个类型要设置的是 innodb_ft_min_token_size = 1


    image.png

    二:设置好最小词数后,搜索俩个字有些能出来,有些不能出来,比如:A:“朋友 敌人” B:"我有一个朋友和一个敌人" 当搜索朋友的时候,A记录能出来 B记录不能出来
    原因是如果不手动配置的情况下 mysql是按照空格来分词的,但是中文的书写规则大部分没有空格,所以处理中文的时候 难以命中目标;好在mysql内置了一个中文分词器:ngram
    在设置全文索引时注意添加分词器,如图


    image.png

    然后重建索引,这样就能够进行中文分词了

    具体请参照这位大大的文章
    https://www.yiibai.com/mysql/ngram-full-text-parser.html

    相关文章

      网友评论

          本文标题:mysql 设置全文索引遇到的几个坑

          本文链接:https://www.haomeiwen.com/subject/tywfzctx.html