MySQL启用中文全文检索功能_mysql5.7怎么查看有没有启动全文索引-程序员宅基地

技术标签: 数据库  

MySQL支持对文本进行全文检索,全文检索可以类似搜索引擎的功能,相比较模糊匹配更加灵活高效且更快。MySQL5.7之后也支持对中文的全文检索,这里描述如何启用MySQL的中文全文检索。

首先,MySQL启用全文检索要对字段加全文检索的索引,注意,一个表只能建立一个全文检索字段,如需要检索多个字段,需要将多个字段一起建立索引,单独建立多个索引是无效的。所以建立方法如下:


  1. ALTER TABLE `localgo`.`entity` ADD FULLTEXT INDEX `entity_info` (`entity_name`, `entity_introduction`) WITH PARSER ngram;

MySQL5.7支持对中文进行全文检索,其自带了内部的切词系统,默认切词系统的字段是4,但中文一般是两个字组成一个单词,因此需要改变。首先看一下内部切词的长度


  1. SHOW VARIABLES LIKE 'ft_min_word_len';
  2. SHOW VARIABLES LIKE 'ft%';

发现结果都是4,下面更改数据库配置,在[client]下加上ft_min_word_len = 2,在[mysqld]下加上另两行。如下所示,注意,一般情况下这两个配置下都含有其他设置,这里省去了,只需要在这两个配置的末尾加上如下内容即可,不要删除之前的配置。


  1. [mysqld]
  2. ft_min_word_len = 2
  3. ngram_token_size=2
  4. [client]
  5. ft_min_word_len = 2

最后,用如下语句即可支持MySQL对中文进行全文检索了(注意检索词需要放在星号之间,支持空格或者分号作为关键词分隔符)。


  1. SELECT * FROM localgo.entity WHERE MATCH(`entity_name`,`entity_introduction`) AGAINST('*程序*' IN BOOLEAN MODE);
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/deng214/article/details/80400636

智能推荐

c++头文件大全-程序员宅基地

文章浏览阅读10w+次,点赞111次,收藏685次。C/C++头文件一览C、传统 C++#include    //设定插入点#include      //字符处理#include      //定义错误码#include      //浮点数处理#include    //文件输入/输出#include    //参数化输入/输出#include   //数据流输入/输出#include    //定义各种数_c++头文件

[CountDownLatch] 1.实现等待TcpServer启动完毕后再发射事件 2.使用CompletableFuture代替CountDownLatch将阻塞封装到内部-程序员宅基地

文章浏览阅读284次。也不能说:直接就启动一个线程,不然没办法发射出“服务器启动”这个事件。有时候,我们希望NettyServer启动时不能说卡主主线程。这时就可以使用此类执行完毕后,通知下主线程。总结:可以看出来,是单独的线程启动,但是可以控制住顺序了。

java8两个list中发数据比较_Java8 Stream对两个 List 遍历匹配数据的优化处理操作-程序员宅基地

文章浏览阅读1.2w次。使用场景,有两个List>集合,第一个集合的所有元素都是需要保留的。第一个集合的值为:{name=张三丰1, id=1}{name=张三丰2, id=2}{name=张三丰3, id=3}{name=张三丰4, id=4}{name=张三丰5, id=5}{name=张三丰6, id=6}{name=张三丰7, id=7}{name=张三丰8, id=8}第二个集合的值为:{grade=61..._list stream 比较

五子棋游戏JS实现-程序员宅基地

文章浏览阅读846次。使用HTML5和JS实现五子棋游戏

Androidstudio的gradle过大内存溢出解决-程序员宅基地

文章浏览阅读5.3k次。首先贴出问题:解决思路如下图:

多模态系列-综述MM-LLMs: Recent Advances in MultiModal Large Language Models-程序员宅基地

文章浏览阅读1.1k次,点赞21次,收藏30次。在过去的一年中,多模态大型语言模型(MM-LLMs)取得了实质性的进展,通过高效的训练策略,增强了现成的语言模型,以支持多模态输入或输出。由此产生的模型不仅保留了语言模型的固有推理和决策能力,还赋予了多样化的多模态任务。在本文中,我们提供了一份旨在促进进一步研究多模态大型语言模型的综合调查。首先,我们概述了模型架构和训练流程的一般设计公式。随后,我们介绍了一个包含122个多模态大型语言模型的分类体系,每个模型都具有其特定的公式。

随便推点

电商管理系统客户端原型分享-程序员宅基地

文章浏览阅读1.4k次。如何画电商管理系统原型,一起来看吧。(资源可下载)_客户端原型

Pandas Dataframe合并连接Join和merge 参数讲解-程序员宅基地

文章浏览阅读638次,点赞28次,收藏14次。但是如果是连接多个键的名字都不同的时候,(比如df1.key1 == df2.key2 , df1.key3 == df2.key4) 那么则最好先通过rename的函数对Dataframe进行改名,之后再merge。当使用cross的时候不需要指定on啥,因为会把左右连接的所有的可能都返回,并不在乎谁和谁相等。这个是merge中的参数,当设置为True的时候,意思是使用索引进行连接。其中merge是需要给键值的。join默认的是使用索引的值。how表示的是连接的方式,一般包含下面的参数,默认是左连接。

【Oracle数据库】存储过程有几种循环方式?_oracle存储过程for loop循环-程序员宅基地

文章浏览阅读1.1k次,点赞17次,收藏9次。在所有的编程语言中,循环都是一个非常重要的语法,掌握循环,是程序员必不可少的能力。在Oracle中,常用的有四种循环,loop循环,while循环,for循环和goto循环_oracle存储过程for loop循环

java/php/node.js/python会议报名系统【2024年毕设】-程序员宅基地

文章浏览阅读676次,点赞18次,收藏23次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。

GD32系列总结 - VScode + keil开发环境搭建_gd32f405 vscode-程序员宅基地

文章浏览阅读3.1k次,点赞7次,收藏47次。GD32系列总结 - VScode + keil开发环境搭建写在前面Keil Assistant插件安装与使用遇见的问题include波浪线警告中文备注乱码last line of file ends without a newline常用插件Chinese (Simplified) Language Pack for Visual Studio CodeBracket Pair ColorizerTabnine AI Code Completion写在前面来了新公司之后,由于这次遇见的单片机是GD32_gd32f405 vscode

Reason: No converter found capable of converting from type [java.lang.String] to type_no converter found capable of type to datasource-程序员宅基地

文章浏览阅读6k次。问题Failed to bind properties under ‘spring.datasource.type’ to java.lang.Class<javax.sql.DataSource>:Error starting ApplicationContext. To display the conditions report re-run your application ..._no converter found capable of type to datasource

推荐文章

热门文章

相关标签