MySQL在高并发连接、数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很大。MySQL针对这一问题提供 了一种全文索引解决方案,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜索),而且实现了更高质量的搜索。但是,至今为 止,MySQL对中文全文索引无法正确支持。
Mysqlcft 是为 MySQL 5.1.22 ~ 5.1.25 RC 开发的中文全文索引插件,用于解决MySQL无法正确支持中文全文检索的问题。
特点:
1、优点:
- 精准度很高:采用自创的“三字节交叉切分算法”,对中文语句进行分割,无中文分词词库,搜索精准度远比中文分词算法高,能达到LIKE '%...%"的准确率。
- 查询速度快:查询速度比LIKE '%...%"搜索快3~50倍,文章末尾有测试结果;
- 标准插件式:以MySQL 5.1全文索引的标准插件形式开发,不修改MySQL源代码,不影响MySQL的其他功能,可快速跟进MySQL新版本;
- 支持版本多:支持所有的MySQL 5.1 Release Candidate版本,即MySQL 5.1.22 RC~最新的MySQL 5.1.25 RC;
- 支持字符集:支持包括GBK、GB2312、UTF-8、Latin1、BIG5在内的MySQL字符集(其他字符集没有测试过);
- 系统兼容好:具有i386和x86_64两个版本,支持32位(i386)和64位(x86_64)CPU及Linux系统;
- 适合分布式:非常适合MySQL Slave分布式系统架构,无词库维护成本,不存在词库同步问题。
2、缺点:
- mysqlcft中文全文索引只适用于MyISAM表,因为MySQL只支持对MyISAM表建立FULLTEXT索引;
- MySQL不能静态编译安装,否则无法安装mysqlcft插件;
- 基于“三字节交叉切分算法”的索引文件会比海量、ft-hightman等基于“中文分词算法”的索引文件稍大,但不是大很多。
根据我的测试,mysqlcft全文索引的.MYI索引文件是.MYD数据文件的2~6倍。
相关推荐
搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构 概述:本资源旨在介绍搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构的过程,涵盖了Sphinx的基本概念、特性、安装和配置 MySQL+SphinxSE存储...
飞猫搜索引擎源码会使用MySQL来存储网站信息、关键词、排名等数据,同时执行SQL查询以获取搜索结果。熟悉SQL语言,包括SELECT、INSERT、UPDATE和DELETE语句,对于操作这个搜索引擎至关重要。 3. 搜索引擎原理:搜索...
MySQL 存储引擎实验报告 本实验报告的主要内容是了解 MySQL 存储引擎的概念、设置和特点,并掌握 MySQL 存储引擎的使用方法。实验中涉及到多种存储引擎,包括 MyISAM 和 InnoDB,考察它们的相同点和区别,并对它们...
总的来说,搭建Sphinx与MySQL的中文全文搜索系统是一项涉及多个步骤的技术任务,需要理解数据库、搜索引擎和中文处理技术。完成这一过程后,我们就能获得一个强大而灵活的搜索解决方案,可以大幅提升用户在数据库中...
标题中的“基于PHP的SEO最新算法橘色屋图库php+mysql带搜索引擎排名优化源码”揭示了这个压缩包文件包含的内容主要与PHP编程、SEO(搜索引擎优化)算法以及MySQL数据库有关,它是一个用于创建图库网站的源码,特别...
搜索引擎聚合源码
MySQL全文搜索功能主要依赖于`MATCH()`和`AGAINST()`两个函数,用于在MyISAM表类型的字段上执行高效的文本搜索。以下是对标题和描述中所述知识点的详细说明: 1. **全文搜索的前提条件** - 表的存储引擎必须是...
【PHP实例开发源码—SEO最新算法橘色屋图库php+mysql 带搜索引擎排名优化.zip】这个压缩包文件包含了一个基于PHP和MySQL的图片库应用,特别强调了SEO(搜索引擎优化)的最新算法。这表明我们即将探讨的是一个实际的...
一、MySQL中文全文索引插件mysqlcft的特点: 1、优点: ①、精准度很高:采用自创的“三字节交叉切分算法”,对中文语句进行分割,无中文分词词库,搜索精准度远比中文分词算法高,能达到LIKE '%...%"的准确率。...
【标题】支持MySQL、Access和SQLServer的JSP搜索引擎是一个基于Java Web技术的搜索解决方案,专为集成到网站中提供快速、高效的全文检索功能。它能够处理来自不同类型的数据库的数据,包括关系型数据库管理系统MySQL...
这个项目结合了多个开源工具,包括Nutch(网络爬虫),Elasticsearch(全文搜索引擎),MySQL(关系型数据库)以及SSM(Spring、SpringMVC、MyBatis)框架,来实现一个功能完善的搜索解决方案。 **Nutch** 是一个...
6、制作一份MySQL Slave供搜索引擎使用 10 7、创建快捷启动、停止、重启、杀死MySQL进程的脚本(以db11的3306端口为例) 10 三、SPHINX配置: 11 1、生成Sphinx中文分词词库 11 ⑴、词典的构造 12 ⑵、词典文件格式 ...
斯芬克斯(Sphinx)是一款高性能的全文搜索引擎,专为高速、精确的全文检索而设计。在本项目中,Sphinx结合了MySQL数据库、SWSC(Smart Chinese Segmentation Component,智能中文分词组件)和PHP编程语言,构建了一...
在IT领域,搜索引擎是至关重要的技术之一,它用于在海量数据中快速找到相关信息。本项目“基于Java的搜索引擎”提供了一个基本的实现,涵盖了搜索引擎的关键组成部分:爬虫、网页处理、索引构建以及检索功能。这里...
MySQL的性能、稳定性及丰富的SQL支持使其成为构建搜索引擎的理想选择。 3. **Heritrix爬虫**: Heritrix是开源的Web抓取工具,常用于构建网络爬虫,是搜索引擎获取互联网数据的重要手段。它允许开发者自定义爬取...
本项目主要是学习利用全文检索引擎框架ElasticSearch实现一个中文旅游网站搜索设计,通过建立一个hotel的索引库关联对应的mysql表数据,实现高效率的查询,解决了传统关系型数据因为数据量大导致的查询瓶颈问题。...