mysql 全文搜索要点
之前数据库有一个需求是用like %% 实现的,数据一多慢的要死,但又因为需求很小,不想动用elasticsearch 或者其他搜索引擎,发现mysql 5.7之后支持InnoDB 全文搜索,打算用来实现like %%功能
记一下坑点
1. ADD FULLTEXT INDEX `PurPartNo` (`keyword`) //用这种方式默认采用自然语言分词(英文分词)
2. ADD FULLTEXT INDEX `PurPartNo` (`keyword`) WITH PARSER ngram;
// 采用ngram方式分词,适合中、韩、日语言
3. 自然语言分词有最小和最大有效字节数,
数据库变量:ft_min_word_len和ft_max_word_len,不符合的会无效,注意要重启数据库
4. 如果是采用ngram分词,数据库变量:ngram_token_size,如果是中文设置为1,不然无法搜索单字
5. 由于匹配的文本有一定特殊性,无法完全实现like %%功能,但确实很快
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭