MYSQL5.7 全文检索中文无返回数据

server/2025/2/2 12:36:10/

在MySQL 5.7.6之前,全文索引只支持英文全文索引,不支持中文全文索引,需要利用分词器把中文段落预处理拆分成单词,然后存入数据库。
从MySQL 5.7.6开始,MySQL内置了ngram全文解析器,用来支持中文、日文、韩文分词。
本文使用的MySQL 版本是5.7.22,InnoDB数据库引擎。

1.修改my.ini文件,增加ngram 解析器,增加ngram_token_size= 2,然后重启MYSQL服务

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 13306
#mysql-5.7.43-winx64的路径
basedir = D:\install\mysql\mysql-5.7.44-winx64  #修改为自己的数据库解压路径
#mysql-5.7.43-winx64的路径+\data
datadir = D:\install\mysql\mysql-5.7.44-winx64\data   #修改为自己的数据库存储路径
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 创建模式
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
ft_min_word_len = 1
ngram_token_size= 2

2.创建带索引表:

CREATE TABLE articles (id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,title VARCHAR (200),body TEXT,FULLTEXT (title) WITH PARSER ngram
) ENGINE = INNODB;

或修改表添加索引

drop index ft_title on articles;create fulltext index ft_title  on articles(title)  WITH PARSER ngram;

3.查询验证

SELECT * FROM articles WHERE MATCH (title) AGAINST ('上海 故事' IN NATURAL LANGUAGE MODE);SELECT * FROM articles WHERE MATCH (title) AGAINST ('上海 故事' IN BOOLEAN MODE);


http://www.ppmy.cn/server/164337.html

相关文章

directx12 3d+vs2022游戏开发第三章 笔记五 变换

一、变换实质 总结来说就是通过矩阵和向量计算控制点变换,变换的效果可以实现局内物体的平移,旋转,缩放等一系列操作。 具体实现为先使用线性变换,即向量矩阵控制物体对于自身坐标系的旋转,缩放。 再使用仿射变换&a…

k8s--部署k8s集群--控制平面节点

环境 Vmware虚拟机,使用Ubuntu 24.04.1 LTS无桌面操作系统。 新建虚拟机参考 注意:在配置网络的时候要正确,不然后面下载系统组件会失败。 选择Docker Engine作为容器运行时。安装docker 官网容器运行时说明 关闭防火墙 sudo ufw disabl…

一文读懂Python之random模块(31)

random模块是Python的内置标准库,用于生成各类随机数,可以用作生成网站初始登录密码和随机验证码。 一、random模块简介 random模块可以生成随机数,包括随机整数、浮点数、随机元素等。 二、random模块相关概念 随机数: 是指在…

论文阅读(六):利用基因型信息作为学习基因网络的先验知识

1.论文链接:Utilizing Genotypic Information as a Prior for Learning Gene Networks 摘要: 基因型和全基因组表达数据的组合产生的分离群体提供了一个前所未有的机会来建模和解剖复杂的表型。领先的研究已经用基因型数据增强了贝叶斯网络,…

物联网 STM32【源代码形式-ESP8266透传】连接OneNet IOT从云产品开发到底层MQTT实现,APP控制 【保姆级零基础搭建】

一、MQTT介绍 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种基于发布/订阅模式的轻量级通讯协议,构建于TCP/IP协议之上。它最初由IBM在1999年发布,主要用于在硬件性能受限和网络状况不佳的情…

JVM堆空间

JVM(Java虚拟机)堆空间是Java内存管理的核心区域之一,用于存储Java对象实例。以下是关于JVM堆空间的详细介绍: 1. 堆空间的作用 • 存储对象实例:几乎所有的Java对象实例(通过new关键字创建的对象&#xf…

我的AI工具箱Tauri+Django内容生产介绍和使用

在现代内容生产环境中,高效、自动化的工具能够显著提升生产力,降低人工成本。Tauri 与 Django 结合打造的工作箱,集成了强大的 音频处理、视频剪辑、内容下载 以及 AI 文章撰写 等模块,帮助用户在多媒体内容生产的各个环节实现高效…

2.1.2 Bayer阵列与去马赛克

文章目录 Bayer阵列去马赛克方法 Bayer阵列 由于传感器只能感受到光的强度,而无法感知颜色,所以需要用红、绿、蓝颜色的滤光片将光中的R、G、B亮度滤出,再通过R、G、B的组合得到各种色彩。Bayer阵列是使用一个传感器获得彩色图像的方法&#…