美文网首页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索引

    创建表是直接创建fulltext索引 在原表上新增fulltext索引 如果原表已存在,则得先删除再新增,不能直接...

  • MySQL索引的语法

    1.创建索引 创建索引的基本语法: [UNIQUE|FULLTEXT|SPATIAL] 指定索引的类型 index...

  • mysql索引增 删 改 查

    创建索引 [UNIQUE|FULLTEXT|SPATIAL]中括号中的这三个关键字表示创建的索引类型,它们分别表示...

  • mysql优化-全文索引

    全文索引创建 1. alter table [table_name] add FULLTEXT [index_na...

  • 02全文本搜索

    1、启用全文本搜索 FULLTEXT对指定列进行索引 不要在导入数据时使用FULLTEXT。可以先导入数据,在修改...

  • MySQL索引详解(三)索引的底层原理

    索引的总共有四种类型:BTree索引,HASH索引,FullText索引和RTree索引不同的存储引擎使用是不同实...

  • MySQL键值

    键值类型:index 普通索引unique 唯一索引fulltext ...

  • MySQL 索引类型

    MySQL目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE。 一、FULLTEXT ...

  • SQL索引及应用场景

    SQL索引:FULLTEXT,HASH,BTREE,RTREE。 fullText: 数据量较大时,先导入数据,然...

  • MySQL中的全文索引(InnoDB存储引擎)

    全文索引介绍 5.6版本之后InnoDB存储引擎开始支持全文索引,5.7版本之后通过使用ngram插件开始支持中文...

网友评论

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

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