docker安装的mysql更改全文检索分词配置

这篇具有很好参考价值的文章主要介绍了docker安装的mysql更改全文检索分词配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里使用的是mysql8.0+,默认使用ngram分词
docker安装的mysql更改全文检索分词配置,MySQL学习,docker,mysql,全文检索
这里是已经将文件从容器中挂载出来了,没挂载出来要去容器内部更改my.cnf文件并重启mysql容器

步骤

一、查看mysql的分词大小

show variables like '%token%';

docker安装的mysql更改全文检索分词配置,MySQL学习,docker,mysql,全文检索
ngram_token_size这里默认是2我已经改为1了
这个值代表分词大小
比如abc会分成ab和bc两个词,会导致检索单个词a、b、c时没有结果

二、进入linux中my.cnf的文件位置并加入配置

ngram_token_size= 1

三、重启mysql容器

docker restart mysql

四、对应字段重新建立全文索引

因为更改了分词配置,所以需要重新建立索引

# 删除索引
ALTER TABLE table_name DROP INDEX index_name;
# 创建索引
ALTER TABLE table_name ADD FULLTEXT index_name(column_name) WITH PARSER ngram;

全文检索使用

详情见官方文档
这里使用的是自然语言模式(NATURAL LANGUAGE MODE)

ALTER TABLE table_name ADD FULLTEXT index_name(column_name) WITH PARSER ngram;

SELECT * FROM table_name WHERE ... AND MATCH (column_name) AGAINST (column_value IN NATURAL LANGUAGE MODE)

例子:文章来源地址https://www.toymoban.com/news/detail-564345.html

ALTER TABLE student ADD FULLTEXT ft_name(name) WITH PARSER ngram;

SELECT * FROM student WHERE age > 18 AND MATCH (name) AGAINST ('张' IN NATURAL LANGUAGE MODE)

到了这里,关于docker安装的mysql更改全文检索分词配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图数据库Neo4J 中文分词查询及全文检索(建立全文索引)

    Neo4j的全文索引是基于Lucene实现的,但是Lucene默认情况下只提供了基于英文的分词器,下篇文章我们在讨论中文分词器(IK)的引用,本篇默认基于英文分词来做。我们前边文章就举例说明过,比如我要搜索苹果公司?首先我们要做的第一步在各个词条上创建全文索引,第二步

    2024年02月03日
    浏览(40)
  • springboot+Elasticsearch实现word,pdf,txt内容抽取并高亮分词全文检索

    文章目录 需求 一、环境 二、功能实现 1.搭建环境 2.文件内容识别 三.代码         产品希望我们这边能够实现用户上传PDF,WORD,TXT之内得文本内容,然后用户可以根据附件名称或文件内容模糊查询文件信息,并可以在线查看文件内容         项目开发环境:           

    2023年04月09日
    浏览(46)
  • 一个线上全文索引BUG的排查:关于类阿拉件数字的分词与检索

    说到全文检索的分词,多半讲到的是中(日韩)文分词,少有英文等拉丁文系语言,因为英语单词天然就是分词的。 但更少讲到阿拉伯数字。比如金额,手机号码,座机号码等等。 以下不是传统的从0开始针对mysql全文索引前世今生讲起。 我更喜欢从一个小问题入手,见缝插针

    2024年02月05日
    浏览(66)
  • 基于 centos7 搭建 laravel+scout+elasticsearch+ik-analyzer 用于中文分词全文检索服务及测试

    浏览该文章,建议先食用 异常问题 这一节 软件/框架 版本 jdk 19.0.2 elasticsearch 8.1.1 ik-analyzer 8.1.1 laravel 7.x-dev elasticsearch/elasticsearch 7.17.1 tamayo/laravel-scout-elastic 8.0.3 下载jdk传送门 安装 下载:wget https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.rpm 安装:rpm -ivh jdk-19_linux-x64_bin.

    2023年04月09日
    浏览(43)
  • MySQL中文全文检索

    常规数据库搜索都是用 like 语句,但是like 语句是不能利用索引的,查询效率极其低下。这也就是为什么很多功能都只提供标题搜索的原因,因为如果搜索内容,几万数据就跑不动了。 Mysql 全文索引是专门为了解决模糊查询提供的,可以对整篇文章预先按照词进行索引,搜索

    2024年02月14日
    浏览(44)
  • mysql全文检索使用

    数据库数据量10万左右,使用like \\\'%test%\\\'要耗费30秒左右,放弃该办法 使用mysql的全文检索 第一步:建立索引 首先修改一下设置: my.ini中ngram_token_size = 1 可以通过    show variables like \\\'%token%\\\';来查看 接下来建立索引:alter  table 表名 add fulltext titlefull (字段名) with parser ngram; 第二步

    2024年02月12日
    浏览(38)
  • MySQL 中文全文检索

    创建索引(MySQL 5.7.6后全文件索引可用WITH PARSER ngram,针对中文,日文,韩文) 查询方法 注意 只能在类型为CHAR、VARCHAR或者TEXT的字段上创建全文索引。 全文索引只支持InnoDB和MyISAM引擎。 MATCH()函数使用的字段名,必须要与创建全文索引时指定的字段名一致。 多个字段索引,

    2024年02月12日
    浏览(50)
  • MySQL——全文检索

    不是所有的数据表都支持全文检索 MySQL支持多种底层数据库引擎,但是并非所有的引擎支持全文检索 ,目前最常用引擎是是MyISAM和InnoDB;前者支持全文检索,后者不支持。 表productnotes : 1. 查询包含 rabbit 的行,并按照相关性排序  2.显示每一条的相关性值 3.有heavy 但是没有

    2024年04月15日
    浏览(43)
  • MySQL 全文检索

    不是所有的数据表都支持全文检索 MySQL支持多种底层数据库引擎,但是并非所有的引擎支持全文检索 ,目前最常用引擎是是MyISAM和InnoDB;前者支持全文检索,后者不支持。 操作符 含义 + 必须有 - 必须不包含 包含对应的排名靠前 包含对应的排名靠后 ~ 取反()

    2024年04月15日
    浏览(38)
  • Mysql 简单实现全文检索(FULLTEXT)

    版本支持 MySQL 5.6 以前的版本,只有 MyISAM 存储引擎支持全文索引; MySQL 5.6 及以后的版本,MyISAM 和 InnoDB 存储引擎均支持全文索引; 只有字段的数据类型为 char、varchar、text 及其系列才可以建全文索引。 按顺序操做: 1.修改数据库配置 etc/my.cnf 文件 [mysqld] 下面加入 ngram_token_s

    2024年02月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包