当前位置: 首页 > wzjs >正文

电商运营八大流程seo基础知识培训

电商运营八大流程,seo基础知识培训,黑客黑网站是做网站,哪个网站开发票MySQL 的 FULLTEXT 配合 ngram 分词器,是一种 轻量但强大 的解决方案,适合处理中文、带符号文本(如 N3-2016-7语法7)的全文搜索。 本文将介绍 MySQL ngram 的最佳使用方式,包括: ✅ 配置环境 ✅ 建立索引…

MySQL 的 FULLTEXT 配合 ngram 分词器,是一种 轻量但强大 的解决方案,适合处理中文、带符号文本(如 N3-2016-7语法7)的全文搜索。

本文将介绍 MySQL + ngram 的最佳使用方式,包括:

✅ 配置环境
✅ 建立索引
✅ 查询语法
✅ 性能优化
✅ 常见问题


🧠 一、ngram 分词器简介

ngram(N-Gram)分词 是一种固定长度切词的方式。
例如对词语 N3-2016

  • ngram_token_size = 2 → 分为:N33--2200116

  • ngram_token_size = 3 → 分为:N3-3-2-20201016

适合处理:

  • 无自然分隔符的语言(如中文)

  • 编码、编号、短词(如 SKU、题号、文章编号)


🛠️ 二、环境要求

  • ✅ MySQL 5.7.6+(推荐 8.0+)

  • ✅ 表引擎必须是 InnoDB

  • ✅ 字符集推荐使用 utf8mb4


⚙️ 三、开启 ngram 分词功能

1. 查看当前系统设置

SHOW VARIABLES LIKE 'ngram_token_size';

默认值是 2,你也可以全局修改:

SET GLOBAL ngram_token_size = 2;  -- 修改为 2-gram

⚠️ 注意:修改后需 重启 MySQL 服务生效,且需 重建全文索引


📑 四、表结构与索引设计

示例表:

CREATE TABLE t_question (id INT PRIMARY KEY AUTO_INCREMENT,question_content TEXT,FULLTEXT (question_content) WITH PARSER ngram
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

WITH PARSER ngram 是关键
✅ 推荐为 TEXT 字段创建全文索引


若已有表:

ALTER TABLE t_question
ADD FULLTEXT(question_content) WITH PARSER ngram;

🔍 五、查询语法示例

1. 普通全文搜索(自动分词)

SELECT * FROM t_question
WHERE MATCH(question_content)
AGAINST('N3 2016' IN BOOLEAN MODE);

✅ 空格隔开多个关键词
✅ 可匹配如 N3-2016-7语法7


2. 精准匹配(AND)

SELECT * FROM t_question
WHERE MATCH(question_content)
AGAINST('+N3 +2016' IN BOOLEAN MODE);

+ 表示必须包含


3. 模糊匹配(带通配符)

SELECT * FROM t_question
WHERE MATCH(question_content)
AGAINST('N3* 2016*' IN BOOLEAN MODE);

⚠️ 通配符仅在 BOOLEAN MODE 下部分生效,ngram 本身已实现了前缀模糊能力。


4. 预处理数据以提高匹配率

将符号(如 -/)替换为空格以便更好分词:

UPDATE t_question
SET question_content = REPLACE(question_content, '-', ' ');

也可以在搜索时处理关键词:

SELECT * FROM t_question
WHERE MATCH(question_content)
AGAINST(REPLACE('N3-2016-7', '-', ' ') IN BOOLEAN MODE);

🚀 六、性能优化建议

优化项建议
✅ 字段类型使用 TEXT 类型,不建议用 VARCHAR 超过 767 字节
✅ 字符集使用 utf8mb4,兼容所有字符
✅ 查询语法使用 BOOLEAN MODE 支持更多操作符
✅ 排序限制查询加 LIMIT、避免 ORDER BY MATCH() 造成排序慢
✅ 表数据变更更新/删除后需注意索引同步,定期优化表(OPTIMIZE TABLE

🧱 七、MySQL ngram 与其他方案对比

方案优点缺点适用场景
LIKE %keyword%简单性能差小数据量
FULLTEXT(默认)快、支持英文不支持中文英文搜索
FULLTEXT + ngram支持中文和符号、轻量精度略低于 NLP 分词中小项目、编码类内容搜索
Elasticsearch强大、支持复杂分析运维成本高搜索引擎、大数据量
Jieba / HanLP可控性强、精度高不支持数据库原生索引NLP 应用、离线分析

🧩 八、常见问题 FAQ

❓1. 中文搜索无结果?

请确认是否:

  • 使用了 WITH PARSER ngram

  • 字符集为 utf8mb4

  • 数据和查询内容一致

  • ngram_token_size 合适


❓2. 如何支持带符号内容(如 N3-2016)?

使用 ngram 可将其切割为 N33--2 等小词组,实现模糊匹配。


❓3. 索引是否生效?

可用以下命令查看全文索引:

SHOW INDEX FROM t_question;

也可 EXPLAIN 查询看是否使用了 FULLTEXT 索引。


✅ 九、最佳实践总结

项目推荐做法
✅ 字段TEXT 类型字段建全文索引
✅ 索引使用 WITH PARSER ngram
✅ 查询使用 AGAINST + BOOLEAN MODE + 空格关键词
✅ 兼容性使用 MySQL 8.0+,InnoDB 引擎
✅ 性能合理使用 LIMIT,避免排序瓶颈
✅ 文本规范化去除无意义符号、统一大小写,提升匹配率

用 MySQL 做中文和混合搜索?别忘了加上 ngram,轻量、原生、好用!

http://www.dtcms.com/wzjs/440840.html

相关文章:

  • 企石做网站广告发布
  • 宁波建设集团几个分公司windows7优化大师下载
  • h5做网站什么软件百度收录量查询
  • 绍兴网站设计销售平台排名
  • 长沙企业官方网站建设最新新闻摘抄
  • 网站建设文字表达抖音seo教程
  • 做网站的框架有网络营销方案有哪些
  • 龙港哪里有做阿里巴巴网站北京昨天出啥大事了
  • 山东青岛网站建设seo优化深圳市住房和建设局官网
  • 做物流的可以在那些网站找客户建站系统cms
  • 万全孔家庄做网站北京网站推广公司
  • 怎样做网站标题优化seo网站优化推广怎么样
  • 驻马店政府网站建设建材企业网站推广方案
  • 南京小程序开发网站建设公司网站制作价格
  • 网站换域名要怎么做临沂做网络优化的公司
  • 直接用apk 做登陆网站专业网站建设
  • 网站ico怎么用室内设计网站
  • 湖南网站建设磐石网络口碑好百度竞价推广收费标准
  • 360建筑网挂靠靠谱吗seo推广骗局
  • 乡镇网站建设和培训六种常见的网络广告类型
  • 杭州seo排名优化海外aso优化
  • 做网站的毕业设计seo营销推广全程实例
  • 手机网站后台管理微指数查询
  • 秦皇岛网站建设公司河北百度推广客服电话
  • 聊城做网站公司如何做网站推广广告
  • 有没有做美食的网站整合网络营销
  • 做采集网站赚钱识图
  • 微信网站如何做镇江交叉口优化
  • 英文外贸网站制作论坛如何做seo
  • 用明星名字做网站个人网站建站教程