`
minioa
  • 浏览: 6812 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

MySQL数据库中文全文检索解决方案

阅读更多
在MySQL建立英文的全文索引不是难事,但是要做好中文的全文索引需要做很多工作。

MySQL默认不支持中文索引,因为中文不能像英文那样通过空格来准确的判断单词,而需要通过语义来判断,这就需要中文切词工具支持,由于版权问题,MySQL一直没有提供中文支持,虽然MySQL发展的很快。

那么我们只能曲线救国了。

场景模拟,在OA系统中添加对新闻的全文搜索支持。
技术实现,对新闻表的标题和正文字段建立Fulltext索引,然后通过MATCH的方式检索。
虽然我们可以通过like或regexp的方式检索,但是和MATCH相比,前者的效率要远远低于后者,前者需要1秒钟,通过全文索引匹配的后者可能只需要0.002秒钟,这就是效率。

SELECT count(*) FROM t where body like'%开源%'
SELECT count(*) FROM t where body regexp'开源'
SELECT count(*) FROM t where body like binary('%开源%')
SELECT body FROM t where match(body) against('开源' in boolean mode)

问题难点,英文容易匹配,以为有空格,但是中文一般是一个个的句子,不好判断。
联想思考,要是将中文能够在词语之间加入空格,那么就可以很容易匹配到。经测试,这种方式是可行的。
现在的问题,变成,如何将一个篇幅的中文汉字提取出有效的关键词,然后各关键词用空格连起来,存入一个字段,然后对这个字段建立Fulltext索引。

思路就是这样的,下面的工作就是如何提取关键词,也就是常说的中文切词或分词。

中文切词方案请参照
Lucene全文检索1[url] http://www.minioa.net/viewtopic.php?f=18&t=264[/url]
Lucene中文检索2[url] http://www.minioa.net/viewtopic.php?f=18&t=266[/url]
分享到:
评论

相关推荐

    MySQL实现中文全文检索的解决方案.pdf

    MySQL 实现中文全文检索的解决方案 在 MySQL 中,实现中文全文检索是一项挑战性的任务,因为 MySQL 不支持中文字符的全文检索。但是,我们可以通过一些 trick 和解决方案来实现中文全文检索。本文将讨论两种解决...

    如何实现MySQL数据库中文模糊检索

    在MySQL数据库中,进行中文模糊检索时,常常会遇到返回的结果并不符合预期,尤其是在处理包含中文和英文混合的关键字时。这是因为MySQL默认的模糊匹配(LIKE操作)在处理多字节字符集(如UTF-8,用于存储中文字符)...

    MySQL数据库中文参考手册(CHM)

    MySQL数据库中文参考手册是一部详尽且全面的指南,旨在帮助用户理解和掌握MySQL数据库管理系统的核心功能和操作。MySQL是一种广泛使用的开源关系型数据库系统,以其高效、稳定和易于使用而受到全球开发者的青睐。CHM...

    MySQL数据库原理及应用(第2版)(微课版)-教学用数据库(Mysql数据库备份文件).zip

    MySQL数据库是世界上最受欢迎的开源关系型数据库管理系统之一,其设计理念在于提供快速、可靠的数据存储解决方案。在《MySQL数据库原理及应用(第2版)(微课版)》中,我们通常会深入探讨数据库的基本概念、设计...

    基于MySQL的全文检索系统的研究与应用.pdf

    文章中提出了一种解决方案,即通过预处理(分词)和调整数据库配置,以解决MySQL对中文全文检索的不支持问题。 【MySQL索引机制】MySQL使用B-树或哈希表形式的索引来加速查找特定值的记录。如果没有索引,查询必须...

    基于遗传算法的MYSQL数据库检索策略优化与设计.pdf

    在MySQL数据库检索策略优化中,遗传算法的应用主要涉及以下几个方面: 1. **编码定义**:在数据库检索策略中,每个个体(即数据库查询方案)可以被编码为一个基因串,代表一系列的操作顺序,如索引选择、连接顺序、...

    最新如何从MQL5MQL4访问MySQL数据库.docx

    ### 最新如何从MQL5/MQL4访问MySQL数据库 #### 一、引言 在金融交易领域,尤其是外汇市场中,MetaTrader平台(包括MetaTrader 4 (MT4) 和 MetaTrader 5 (MT5))是非常流行的交易平台。为了增强交易策略的功能性和...

    MySQL数据库数据库导论

    在实际应用中,MySQL数据库常与Web开发语言PHP搭配使用,形成强大的动态网站解决方案。其强大的性能和灵活性使其在互联网环境中占据重要地位。了解并熟练掌握MySQL的基础知识,对于任何希望从事数据库管理或Web开发...

    MySQL数据库技术大全.pdf

    MySQL数据库技术大全.pdf MySQL数据库技术大全.pdf是关于MySQL数据库技术的综合指南,涵盖了MySQL的历史、架构、安装、管理、备份和恢复等方面的知识。 MySQL简介 MySQL是一个开源的关系型数据库管理系统,由...

    解决MySQL数据库中文模糊检索问题的方法

    MySQL 数据库中文模糊检索问题的方法解决方案 在 MySQL 中,对于中文模糊检索问题,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却没有 a 字符存在。这是一个常见的问题,本文将介绍...

    MySQL 数据库如何解决高并发问题

    - **使用索引**:合理创建索引,如普通索引、主键索引、组合索引、全文索引,加速数据检索。 2. **少数据**:减少每次查询的数据量,提高查询效率。 - **分表**:水平拆分(按时间或其他维度分表)和垂直拆分(将...

    _PHP技术与MYSQL数据库技术的Web动态网页设计.pdf

    总的来说,PHP和MySQL技术的结合,为动态网页设计提供了一种高效、灵活且成本低廉的解决方案。这种技术组合不仅能够满足现代Web应用对交互性和动态内容的要求,还能够适应不断增长的业务需求和不断发展的Web技术趋势...

    基于SQL语言MySQL数据库应用程序及其代码方案

    ### 基于SQL语言MySQL数据库应用程序及其代码方案 #### MySQL数据库系统介绍 MySQL作为一款全球范围内广泛应用的关系型数据库...无论是简单的数据存储需求还是复杂的数据处理任务,MySQL都能够提供有效的解决方案。

    Web端后台MySQL数据库设计1

    服务器选择的是阿里云的解决方案,运行的是CentOS 6.5 32位操作系统。服务器环境基于LAMP架构,这是一种广泛使用的开源软件堆栈,由Linux操作系统、Apache网络服务器、MySQL数据库管理系统以及PHP编程语言组成。这种...

Global site tag (gtag.js) - Google Analytics