mysql全文索引FULLTEXT

  1.  innodb支持全文索引
     

       之前的旧版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的字段上。 

       后来新版的MySQL5.6.24上InnoDB引擎也加入了全文索引,所以具体信息要随时关注官网。

  2. 全文索引对中日韩的分词支持。
           mysql默认的分词用的是Latin,他是根据空格进行分词的。这对于像中文的语言是没发进行分词的,后来mysql又内置了一个支持中日韩文的分词器ngram。分词大小可以通过mysql的配置文件进行配置ngram_token_size=2,默认是两个。
  3. 创建ngram索引(要指定ngram,否则不支持中文)
    ALTER TABLE `octopus`.`material` 
    ADD FULLTEXT INDEX `idx_fulltext_name`(`name`) WITH PARSER ngram;
  4. 索引查询
    1.自然语言查询(n-gram分词查询的并集,例如(‘北欧风格’)转换为(“‘北欧 欧风 风格'”)。)
    
    SELECT m.id,m.name,m.modify_date,m.material_image_urls,m.material_zip_url,m.source_type
    FROM material m where match(name) against('北欧风格' IN NATURAL LANGUAGE MODE);

    2.短语查询(按分词来直接匹配)
    SELECT m.id,m.name,m.modify_date,m.material_image_urls,m.material_zip_url,m.source_type
    FROM material m where match(name) against('北欧风格' IN BOOLEAN MODE);
    
    3.统配符查询
    SELECT * FROM material where match(name) against('北*' IN BOOLEAN MODE);

    参考地址:https://www.cnblogs.com/zhoujinyi/p/5643408.html

 

    

 

 

     

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值