博客
关于我
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全文索引的核心功能、配置方法及使用技巧,旨在为开发者提供实用指南。

    你可能感兴趣的文章
    N!
    查看>>
    N-Gram的基本原理
    查看>>
    n1 c语言程序,全国青少年软件编程等级考试C语言经典程序题10道七
    查看>>
    Nacos Client常用配置
    查看>>
    nacos config
    查看>>
    Nacos Config--服务配置
    查看>>
    Nacos Derby 远程命令执行漏洞(QVD-2024-26473)
    查看>>
    Nacos 与 Eureka、Zookeeper 和 Consul 等其他注册中心的区别
    查看>>
    Nacos 单机集群搭建及常用生产环境配置 | Spring Cloud 3
    查看>>
    Nacos 启动报错[db-load-error]load jdbc.properties error
    查看>>
    Nacos 报Statement cancelled due to timeout or client request
    查看>>
    Nacos 注册服务源码分析
    查看>>
    Nacos 融合 Spring Cloud,成为注册配置中心
    查看>>
    Nacos-注册中心
    查看>>
    Nacos2.X 源码分析:为订阅方推送、服务健康检查、集群数据同步、grpc客户端服务端初始化
    查看>>
    Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制
    查看>>
    Nacos2.X源码分析:服务注册、服务发现流程
    查看>>
    NacosClient客户端搭建,微服务注册进nacos
    查看>>
    Nacos中使用ribbon
    查看>>
    Nacos使用OpenFeign
    查看>>