MySQL全文检索插件

hightman实现了一个MySQL全文检索的插件。它只能使用在5.1.11-12,并且需要更改MySQL的源码,故对其做了一些修改,替换了一个MySQL后续版本中更改了的接口,去掉了一些不需要的功能。

hightman的插件使用了自己的wordlist和stopword list,并使用正向最大匹配分词,新的插件对算法没有任何改变。插件只支持utf8,就是说用于建索引的字段的字符集必须为utf8。wordlist 中只有26万的词汇,可能分词不是很准确,因为我不太清楚好的分词是什么样子,所以也说不准。支持normal mode和boolean mode,不支持query expansion。分词的速度大概为65M的文本建索引需要85秒(没比较,不知道是快还是慢)。源码见最后的链接。

使用方法:

1. 编译插件,MySQL必须是5.1.12版之后的版本,编译出来的so文件必须放在MySQL安装目录的lib/plugin目录下

shell> gcc -DMYSQL_DYNAMIC_PLUGIN -Wall -shared \
-I/usr/local/mysql/include \
-I/usr/local/mysql-source/include \
-I/usr/local/mysql-source \
-o /usr/local/mysql/lib/plugin/libthunder_ft.so \
thunder_ft.c

2. 拷贝wordlist,将附件中的wordlist和stopword两个文件放到/usr/local/mysql/share/mysql中

3. 进入mysql,安装插件

mysql> install plugin thunder_ft soname 'libthunder_ft.so';

4. 建索引时增加 with parser thunder_ft 修饰

mysql> alter table review add fulltext index i_title_content(title, content) with parser thunder_ft;

5. 使用全文索引

mysql> select * from review where match(title, content) against('+大显 +手机' in boolean mode);
注意match中必须列出索引中的每一项。如果希望对title单独检索,则必须要为title这一列单独建一个索引。

6. 可以查看插件被调用了多少次用于分词

mysql> show global status like 'thunder_ft_called';

7. 因为要将wordlist放在内存中,所以这个插件会使用十几兆的内存。当不需要使用时,可以卸载。

mysql> uninstall plugin thunder_ft;


thunder_ft.c
wordlist
【机器学习与数据挖掘实战 | 医疗】案例18:基于Apriori算法的中医证型关联规则分析 本案例针对三阴乳腺癌患者,经问卷调查收集数据并筛选处理形成原数据,经清洗、特征选择与变换后,构建Apriori模型,基于业务理解与建模结果,分析患者症状与中医证型关联,并据症状给出建议 。 阅读详情

相关推荐

Outlook日历同步全攻略:Win10+安卓+iOS三端无缝衔接(附常见问题解决)

本文提供了一份详尽的Outlook日历同步指南,帮助用户在Windows 10、安卓和iOS三端实现无缝衔接。文章深入解析了Exchange ActiveSync等核心同步原理,并给出了从账户创建到各设备(特别是华为手机)的具体配置步骤、进阶管理技巧以及针对同步失败、事件重复等常见问题的实战解决方案,旨在彻底解决跨平台日程管理的痛点。

l3m4n的博客 554

mysql 分词插件_MySQL中文分词插件SqlJieba的说明

MySQL中文分词插件SqlJieba的说明关键词MySQL, 插件(Plugin), 结巴分词(Jieba), 中文分词, 全文检索(Full-Text), SqlJieba需求背景有人问我什么时候可以搞一个MySQL中文分词插件。非常无奈自己对MySQL插件开发实在是不熟悉,再加上感觉这种插件的需求量也不大,所以就迟迟没有抽出时间开发。cppjieba 一个 issue-58 把MySQL插件...

weixin_28823431的博客 1206

Ubuntu Server 24.04 安装 (超详细)

本文介绍最小化安装 Ubuntu Server的详细过程。

炀炀的专栏 1万+

ElasticSearch 实现 全文检索 支持(PDF、TXT、Word、HTML等文件)通过 ingest-attachment 插件实现 文档的检索

Attachment 插件是 Elasticsearch 中的一种插件,允许将各种二进制文件(如PDF、Word文档等)以及它们的内容索引到 Elasticsearch 中。插件使用 Apache Tika 库来解析和提取二进制文件的内容。通过使用 Attachment 插件,可以轻松地在 Elasticsearch 中建立全文搜索功能,而无需事先转换二进制文件为文本。

解决bug的路上 1万+

发那科机器人抓手与物料搬运阀的配置与优化实践

本文详细介绍了发那科机器人抓手与物料搬运阀的配置与优化实践,包括基础配置指南、阀岛与输入模块的详细设置、测试程序编写与验证技巧,以及常见问题排查与性能优化建议。通过实际案例和经验分享,帮助技术人员快速掌握关键配置步骤,提升物料搬运系统的稳定性和效率。

weixin_33738555的博客 385

基于STM32的多路火灾报警系统设计

本文设计了一款基于STM32的多路火灾报警系统,利用多个传感器组合(如烟雾传感器、温度传感器等)进行数据采集与处理,精确判断火灾情况,并及时发出报警信号,保障生命与财产安全。本系统设计了一款基于STM32的多路火灾报警系统,通过结合烟雾传感器和温度传感器,提升了火灾检测的准确性和可靠性。未来,系统可以进一步集成更多传感器,如气体传感器、湿度传感器等,进一步提升火灾报警系统的智能化水平。本系统采用STM32F103单片机作为核心处理单元,结合烟雾传感器、温度传感器和报警模块,实现多通道火灾报警功能。

stm32d1219的博客 2030

基于 ElasticSearch 实现站内全文搜索,写得太好了

搜索引擎服务使用ElasticSearch提供的对外web服务选则springboot webElasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apa

2401_84010784的博客 1299

JSON 与 JSON-RPC 的区别

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于文本,采用人类可读的语法来表示结构化数据。它起源于JavaScript,但如今已被几乎所有主流编程语言支持。标准文档:RFC 4627数据类型:支持 String、Number、Boolean、Null、Object、Array 六种基本类型格式示例"name": "张三","age": 30,JSON-RPC(JSON Remote Procedure Call)是一种远程过程调用(RPC)协议。

h a 6 6 6 c k 为 你解决复杂难题! 146

mysql使用结巴语句_MySQL 结巴中文分词插件 SqlJieba

软件介绍MySQL 结巴中文分词插件 SqlJieba『关键词』MySQL, 插件(Plugin), 中文分词, 结巴分词(Jieba), 全文检索(Full-Text), SqlJieba使用方法:mysql>createdatabasesqljieba;QueryOK,1rowaffected(0.04sec)mysql>usesqljieba;Databas...

weixin_39956443的博客 627

【人工智能】大模型可以分为L0层:基础大模型/通用大模型、L1层:行业大模型、L2层:细分场景模型三个层级

大模型确实可以分为L0、L1、L2三个层级,这种分层架构不仅有助于提升模型的泛化能力和适应性,还能更好地满足不同行业和场景的需求。华为盘古大模型的分层架构(L0、L1、L2)在多个证据中得到了详细描述和验证。例如,华为云盘古大模型3.0明确分为L0基础大模型、L1行业大模型和L2场景模型三层架构。此外,其他来源也一致支持这一分层架构,如用友网络的企业服务大模型、智谱AI的GLM-4系列等。

奶爸的编程之路,也就一周冷个三天 3982

4.3 Langfuse 集成实战:追踪 OpenAI、LangChain 和 LangGraph 应用

本文介绍了如何将Langfuse集成到不同类型的AI应用中,包括原生OpenAI、LangChain和LangGraph应用。主要内容包括: 两种集成模式:手动追踪(精确控制)和自动追踪(通过回调机制) 三种应用场景的集成方案: 原生OpenAI应用:使用langfuse.trace()手动记录对话流程、LLM调用和工具执行 LangChain应用:通过LangfuseCallbackHandler自动追踪Agent执行过程 LangGraph应用:与LangChain相同的自动追踪方式,可可视化节点和状态

yonggeit的博客 3303

MySQL全文索引、支持中文分词

简单介绍 MySQL全文索引是在基于文本的列(char、varchar或text列)上创建的,以提升对这些列中包含的数据的查询和DML操作效率。全文索引被定义为create table语句的一部分,或者使用alter table或create index追加到现有表中。搜索语法为:match(field1,field2,…) against(’keyword‘),更多使用方法及详细信息参考MySQL全文索引官方文档 版本说明 MySQL 5.6 以前的版本,只有 MyISAM 存储引擎支持全文索引 MyS

漏网之鱼 1263

SAP 清账凭证 完整生成逻辑(超详细原理 + 底层规则 + 分录逻辑 + 互清特殊规则)

【SAP清账凭证核心逻辑摘要】(149字) SAP清账凭证生成遵循两大类型:1)资金往来对冲型(如F-32/F-44互清),强制生成含完整借贷分录的独立凭证,通过AUGDT/AUGBL字段绑定未清项,典型场景如应收冲应付(借:应付账款 贷:应收账款);2)纯核销型(如F.13自动清账),仅标记行项目状态不产生实际分录。关键规则:①仅未清项管理科目可清账;②互清必须配置主数据关联;③差额清账自动补差(折扣/汇差);④原始凭证永不修改,仅更新BSIK/BSAD等表状态。清账凭证均保留可追溯性,支持FBRA重置还

金牌架构师 542

mysql 全文检索 插件_MySQL全文检索插件

hightman的插件使用了自己的wordlist和stopword list,并使用正向最大匹配分词,新的插件对算法没有任何改变。插件只支持utf8,就是说用于建索引的字段的字符集必须为utf8。wordlist 中只有26万的词汇,可能分词不是很准确,因为我不太清楚好的分词是什么样子,所以也说不准。支持normal mode和boolean mode,不支持query expansion。分词...

weixin_39856265的博客 157

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Mysql支持中文全文检索的插件mysqlcft-应用中的问题

MySQL目前版本的全文检索没有对中文很好的支持,但可以通过安装mysqlcft插件来实现,具体的安装使用方法:http://blog.s135.com/post/356/ mysqlcft的官方网站上标明支持MySQL5.1(https://code.google.com/p/mysqlcft/),但发现在MySQL5.5和之前的版本中都是可以使用的,但在MySQL5.6中应用这个插...

weixin_30344795的博客 115

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

mysql 中文搜索插件_zg手册 之 Mysql 开发(1)-- 中文全文检索插件开发

目前的中文检索查询方案基于数据库的模糊匹配(运行时字符串查找,查询速度比较慢)专有的全文检索引擎(sphinx, lucene等)我曾经遇到一个项目,数据量在百万级别,不需要高级的全文检索方式(没有复杂的匹配需求,没有复杂的过滤条件),只是需要根据关键词检索数据,当时采用的 mysql 全文检索插件的方式来满足的项目需求。Mysql 的中文全文检索插件开发Mysql 的 MyISAM 引擎支持第三...

weixin_39663729的博客 179

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

zg手册 之 Mysql 开发(1)-- 中文全文检索插件开发

为什么80%的码农都做不了架构师?>>> ...

weixin_34064653的博客 131

mysql全文搜索插件_MySQL 全文检索 ngram插件

InnoDB默认的全文索引parser非常合适于Latin,因为Latin是通过空格来分词的。但对于像中文,日文和韩文来说,没有这样的分隔符。一个词可以由多个字来组成,所以我们需要用不同的方式来处理。在MySQL 5.7.6中我们能使用一个新的全文索引插件来处理它们:n-gramparser.什么是N-gram?在全文索引中,n-gram就是一段文字里面连续的n个字的序列。例如,用n-gram来对...

weixin_42320061的博客 593

MySQL:如何编写全文索引插件

转载请署名:印风 1.简介 全文索引插件用于对MYISAM的全文检索特性进行扩展。通过全文检索,我们可以对文档、图片或者视频等丰富的数据类型进行分词,建立索引,以便进行快速的检索。 目前MySQL仅在MYISAM存储引擎里支持全文检索,而对于innodb,则要在6.0以后的版本中才会实现。 但目前全文索引也有着如下的限制: 1.        只支持MyISAM 2.        不

记录成长之路 1782

MySQL全文检索fulltext日语解析插件MeCab学习笔记

MySQL原始内置的全文检索(Full-Text Search)只适用于像英文这些词语之间有天然分隔符(如空格)的自然语言,MySQL5.7.6开始引入ngram full-text parser plugin,采用手动设置词语长度的方式进行人工分词,这可以作为CJK(Chinese、Japanese、Korean)语系全文检索的手段,具体可以参考之前的使用笔记:https://blog.csdn...

蛙鳜鸡鹳狸猿 1821

MySQL 全文检索 ngram插件

InnoDB全文索引:N-gram Parser【转】 MySql5.7 建立全文索引     InnoDB默认的全文索引parser非常合适于Latin,因为Latin是通过空格来分词的。但对于像中文,日文和韩文来说,没有这样的分隔符。一个词可以由多个字来组成,所以我们需要用不同的方式来处理。在MySQL 5.7.6中我们能使用一个新的全文索引插件来处理它们:n-gram parser.   什...

weixin_33882443的博客 1368

ngram mysql_MySQL 全文检索 ngram插件

InnoDB默认的全文索引parser非常合适于Latin,因为Latin是通过空格来分词的。但对于像中文,日文和韩文来说,没有这样的分隔符。一个词可以由多个字来组成,所以我们需要用不同的方式来处理。在MySQL 5.7.6中我们能使用一个新的全文索引插件来处理它们:n-gramparser.什么是N-gram?在全文索引中,n-gram就是一段文字里面连续的n个字的序列。例如,用n-gram来对...

weixin_30003217的博客 243

mysql全文索引 插件_如何编写MySQL全文索引插件

1.简介全文索引插件用于对MYISAM的全文检索特性进行扩展。通过全文检索,我们可以对文档、图片或者视频等丰富的数据类型进行分词,建立索引,以便进行快速的检索。目前MySQL仅在MYISAM存储引擎里支持全文检索,而对于innodb,则要在6.0以后的版本中才会实现。但目前全文索引也有着如下的限制:1.只支持MyISAM2.不支持中文3.如果支持在一...

weixin_42347778的博客 255

MySQL全文检索fulltext和中日韩文解析插件ngram使用笔记

项目数据库中遇到一个情况,有一个字段存储的是经销厂商在工商局注册时的(官方)全称,但是用户在查询这个字段时,很多时候都会使用到各种各样的简称别称。于是,对于该字段,希望能够实现类似于搜索引擎的查询。就像数据库里面存的是“Дд中Ж华Ж人Ж民Ж共Ж和Ж国Дд”,但希望是只要用户输入“Дд中Ж国Дд”、“Дд中Ж华Дд”、“Дд民Ж国Дд”、“Дд中Ж华Ж民Ж国Дд”等关键字,最终都能定位到“中华人民共...

蛙鳜鸡鹳狸猿 7524

mysql ngram 中文_MySQL 全文检索 ngram插件

InnoDB默认的全文索引parser非常合适于Latin,因为Latin是通过空格来分词的。但对于像中文,日文和韩文来说,没有这样的分隔符。一个词可以由多个字来组成,所以我们需要用不同的方式来处理。在MySQL 5.7.6中我们能使用一个新的全文索引插件来处理它们:n-gramparser.什么是N-gram?在全文索引中,n-gram就是一段文字里面连续的n个字的序列。例如,用n-gram来对...

weixin_42105570的博客 707
上一篇: 设置MySQL使用大内存页面
下一篇: 如何编写MySQL的全文索引插件
epee
博客等级 码龄24年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值