博客
关于我
Mysql建立中英文全文索引(mysql5.7以上)
阅读量:798 次
发布时间:2023-02-12

本文共 1141 字,大约阅读时间需要 3 分钟。

MySQL全文索引技术指南

一、全文索引概念

全文索引是一种基于数据库技术的高级检索机制,能够通过分析文本内容中的关键词频率和重要性,快速匹配相关数据。MySQL全文索引支持多种检索模式,特别适用于文本存储和搜索场景。

二、MySQL全文索引版本支持

  • MySQL5.6及以下:仅支持MyISAM引擎的全文索引。
  • MySQL5.7及以上:支持InnoDB引擎的全文索引。

三、关键参数配置

  • 分词大小:默认为2,建议根据实际需求调整,体积影响需权衡。
  • 最小词长:默认为4,推荐修改为2以适应中文分词。

四、索引创建语法

方式一:建表时创建
CREATE TABLE articles (    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,    title VARCHAR(200),    content TEXT,    FULLTEXT (title, content) WITH PARSER ngram) ENGINE=InnoDB CHARACTER SET utf8mb4;
方式二:动态添加
ALTER TABLE articles ADD FULLTEXT INDEX idx_fulltext (title, content) WITH PARSER ngram;
方式三:直接创建索引
CREATE FULLTEXT INDEX idx_content ON articles(content);

五、查询方式

1. 自然语言模式
SELECT * FROM articles WHERE MATCH(title, content) AGAINST('关键词' IN NATURAL LANGUAGE MODE);
2. 布尔模式
SELECT * FROM articles WHERE MATCH(title, content) AGAINST('+apple -banana' IN BOOLEAN MODE);
3. 查询扩展
SELECT * FROM articles WHERE MATCH(title, content) AGAINST('关键词1 关键词2' WITH QUERY EXPANSION);

六、注意事项

  • 区分大小写:默认不分大小写,需调整字段字符集为utf8_bin
  • 排序规则:默认按相关性排序。
  • 字段一致性:确保MATCH列与FULLTEXT索引字段完全一致。
  • 避免重复检索:若仅需检索单字段,需分别创建索引。
  • 七、参考资料


    本文通过简洁的技术语言,系统介绍了MySQL全文索引的核心功能、配置方法及使用技巧,旨在为开发者提供实用指南。

    你可能感兴趣的文章
    mysql数据碎片整理
    查看>>
    MySQL数据类型
    查看>>
    MySQL数据类型字节长度
    查看>>
    mysql数据被误删的恢复方案
    查看>>
    MySQL数据读写分离(MaxScale)上干货!!!
    查看>>
    mysql整库导入、导出
    查看>>
    mysql文本函数和数字函数
    查看>>
    Mysql新建用户和数据库并授权
    查看>>
    mysql日志文件
    查看>>
    mysql日志管理学习笔记
    查看>>
    MySQL日期时间函数大全
    查看>>
    mysql时间相减的问题
    查看>>
    mysql时间表示和计算
    查看>>
    mysql更新一个表里的字段等于另一个表某字段的值
    查看>>
    Mysql更新时间列只改日期为指定日期不更改时间
    查看>>
    MySQL更新锁(for update)摘要
    查看>>
    mysql替换表的字段里面内容
    查看>>
    MySQL最大建议行数 2000w,靠谱吗?
    查看>>
    MySQL有哪些锁
    查看>>
    MySQL服务器安装(Linux)
    查看>>