美文网首页PHP程序员
使用 ngram 解析器创建FULLTEXT索引

使用 ngram 解析器创建FULLTEXT索引

作者: php转go | 来源:发表于2020-11-18 16:03 被阅读0次
    1. 创建表是直接创建fulltext索引
    CREATE TABLE address (
        id INT PRIMARY KEY AUTO_INCREMENT,
        realname VARCHAR(255),
        mobile VARCHAR(255),
        province VARCHAR(255),
        city VARCHAR(255),
        area VARCHAR(255),
        FULLTEXT ( province , city,area ) WITH PARSER NGRAM
    )  ENGINE=INNODB CHARACTER SET UTF8;
    
    1. 在原表上新增fulltext索引
    ALTER TABLE  `address`  ADD FULLTEXT INDEX `real`(`realname`, `city`, `province`, `detail`) WITH PARSER `ngram`;
    

    如果原表已存在,则得先删除再新增,不能直接alert修改

    ALTER TABLE `address` 
    DROP INDEX `real`,
    ADD FULLTEXT INDEX `real`(`realname`, `city`, `province`, `detail`) WITH PARSER `ngram`;
    

    查询时用法

    SELECT 
       *
    FROM
        address1
    WHERE
        MATCH (realname , city,province) AGAINST ('广东和北京'  IN natural language MODE );
    #自然语言模式 IN natural language MODE 搜索项被转换为ngram值的并集,会拆分成 “广东”,“东和”,“和北”,“北京”这样进行搜索获取结果
    
    #布尔模式  IN BOOLEAN MODE 搜索中,搜索项被转换成ngram短语搜索,只会搜索出包含“广东和北京”的记录
    

    相关文章

      网友评论

        本文标题:使用 ngram 解析器创建FULLTEXT索引

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