PHP程序员

使用 ngram 解析器创建FULLTEXT索引

2020-11-18  本文已影响0人  php转go
  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短语搜索,只会搜索出包含“广东和北京”的记录
上一篇下一篇

猜你喜欢

热点阅读