首先要说,实现全文搜索一般都不用RDB,而是使用专用的搜索引擎。
搜索引擎同样也是一种数据库,
但是,索引的实现比较复杂,而且在每次更新数据的时候,都要更新索引,
所以,更新数据速度非常得慢,可以实现非常快的搜索速度。
搜索引擎有付费的也有免费并且开源的,
开源的搜索引擎用Apache Lucene得比较多
这里有PHP版的
http://framework.zend.com/manual/zh/zend.search.lucene.html
Apache Luncene的子工程中有一个
solr
,
是一个源于CBNET的一个搜索引擎,可以支持大型网站。
如果非用Mysql,那就是自动生成like但是注意,
%关键字%这种形势的关键字无法使用索引,
所以,搜索效率会非常的低。
在Mysql中还有另一种实现全文搜索的方法,也就是MATCH...AGAINST语句。
以下借花献佛,介绍一下。
MYSQL在使用like进行全文搜索效率比较低,尤其在处理大量数据的时候.
MySQL针对这一问题提供了一种基于内建的全文查找方式的解决方案。在此,开发者只需要简单地标记出需要全文查找的字段,然后使用特殊的
MySQL方法在那些字段运行搜索,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜索),而且实现了更高质量的搜索,因为
MySQL使用自然语言来智能地对结果评级,以去掉不相关的项目.
1 建表语句
建立title和body为全文搜索索引
-
CREATE TABLE `articles` (
-
`id` int(10) unsigned NOT NULL auto_increment,
-
`title` varchar(200)
default
NULL,
-
`body` text,
-
PRIMARY KEY (`id`),
-
FULLTEXT KEY `title` (`title`,`body`)
-
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
2 插入一些数据
-
INSERT INTO `articles` (`id`, `title`, `body`) VALUES
-
(1,
'MySQL Tutorial'
,
'DBMS stands for DataBase ...'
),
-
(2,
'How To Use MySQL Efficiently'
,
'After you went through a ... stands'
),
-
(3,
'Optimising MySQL'
,
'In this tutorial we will show ...'
),
-
(4,
'1001 MySQL Tricks'
,
'1. Never run mysqld as root. 2. ...'
),
-
(5,
'MySQL vs. YourSQL'
,
'In the following database comparison ...'
),
-
(6,
'MySQL Security'
,
'When configured properly, MySQL ...'
);
3 全文搜索
最简单的全文搜索方式是带有MATCH...AGAINST语句的SELECT查询
-
SELECT *
-
FROM `articles`
-
WHERE MATCH (
-
body
-
)
-
AGAINST (
-
'MySQL'
-
)
4 使用逻辑搜索修饰符(Boolean search modifiers)
++表示必须
+表示要有的-表示不能有的
不带+或者-表示,任意一种
-
SELECT *
-
FROM articles
-
WHERE MATCH (
-
body
-
)
-
AGAINST (
-
'+mysql +When'
-
IN BOOLEAN
-
MODE
-
)
-
SELECT *
-
FROM articles
-
WHERE MATCH (
-
body
-
)
-
AGAINST (
-
'+database -DBMS'
-
IN BOOLEAN
-
MODE
-
)
-
SELECT *
-
FROM articles
-
WHERE MATCH (
-
body
-
)
-
AGAINST (
-
'database DBMS'
-
IN BOOLEAN
-
MODE
-
)
注意搜索的字段长度最好大于5,否则可能找不到
< type="text/javascript">
< type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
转贴请注明出处:
http://blog.csdn.net/froole
分享到:
相关推荐
MySQL 数据库全文检索的实现方法 MySQL 是一种关系型数据库管理系统,广泛应用于各种 Web 应用程序中。随着数据量的增长,全文检索功能变得越来越重要。本文介绍了一种 MySQL 数据库全文检索的实现方法,基于 UTF-8...
4. **Profile提供程序**:允许在MySQL中存储和检索用户的个性化设置。 在C#项目中使用这些DLL时,需要将其添加到项目的引用中。如果使用的是Visual Studio,可以通过"项目"->"添加引用"->"浏览",然后选择对应的DLL...
将PHP与MySQL结合,可以实现Web应用程序的数据存储和检索。例如,通过PHP,你可以创建一个用户注册系统,其中用户提交的信息被发送到服务器,然后用PHP处理这些数据,将它们插入到MySQL数据库中。当用户登录时,PHP...
Web程序设计是构建和维护互联网应用程序的关键领域,它涵盖了多种技术和工具,用于创建交互式的、动态的、用户友好的网站。在这个主题中,"Web程序设计13"可能指的是一个课程或者系列教程的第13个部分,着重于进一步...
总结来说,MySQL启动与Web的关系主要体现在Web应用程序通过数据库连接与MySQL交互,以实现数据的存储和检索。同时,Ajax技术在不刷新整个页面的情况下提供了与服务器通信的能力,提高了用户体验。理解并熟练掌握这些...
MySQL.Web.dll 特别适用于 ASP.NET 开发者,它允许他们轻松地在 .NET 环境中集成 MySQL 数据库服务,实现数据的存储和检索。 这个 DLL 文件的功能主要包括: 1. **数据库连接管理**:提供与 MySQL 服务器建立、...
- **MySQL** 是一个流行的开源关系型数据库管理系统,常用于Web应用程序中,提供高效的数据存储、检索和管理服务。 - **JSP(Java Server Pages)** 是一种基于Java的服务器端技术,用于创建动态网页。它允许开发者...
Java Web连接MySQL数据库是开发Web应用时常见的任务,主要用于存储和检索数据。在这个小型程序中,我们将探讨如何使用Java Web技术栈(包括Servlet、JSP)以及Java Database Connectivity (JDBC) API来实现这一功能...
【标题】"jsp+servlet+mysql留言web程序大作业分享"揭示了这是一个基于Web的开发项目,使用了Java Server Pages (JSP)、Servlet和MySQL数据库来构建一个留言系统。这个系统允许用户提交留言,存储在数据库中,并能...
- 数据库系统:MySQL,存储和检索Web应用所需的数据。 - 浏览器:如Chrome、Firefox等,用户通过浏览器查看和交互网页内容。 2. 表单数据接收方式: - GET:数据附加在URL后面,可见且有长度限制,不安全,适用...
MySQL则是世界上最流行的开源关系型数据库管理系统之一,它为开发者提供了高效的数据存储和检索功能。书中详细讲解了MySQL的安装和配置,数据库设计原则,以及如何创建、查询、更新和删除数据库中的数据。读者将掌握...
《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...
在Web开发中,MySQL常作为数据存储和检索的核心,用于处理用户提交的数据、实现动态内容和数据的持久化。书中会涵盖MySQL的安装与配置、SQL语言基础、表的设计、查询操作、事务处理、存储过程等内容,帮助读者理解...
《精通PHP 4.0与MySQL架构Web数据库》是一本专为PHP初学者和进阶者设计的教程,旨在帮助读者全面掌握使用PHP 4.0版本与MySQL数据库构建高效、安全的Web应用。该书可能包含了从基础的PHP语法到复杂的数据库交互,以及...
1. **《PHP & MySQL Web Development》**:这是一本全面介绍如何使用PHP和MySQL开发Web应用程序的书籍。内容涵盖了从基础知识到高级技术的各个方面,适合初学者和有经验的开发者阅读。 2. **《PHP Cookbook》**:...
《Web程序设计电子教案》与《Web程序设计实验手册》是学习Web开发的重要参考资料,尤其适合初学者和希望深入理解Web技术的学员。这两份资料提供了全面、详细的Web开发知识,涵盖从基础到进阶的各种主题。 Web程序...
【标题】: "Web程序设计10" 是一个关于深入学习Web开发的课程或主题,可能涵盖了一系列关于创建和维护Web应用程序的技术和概念。在Web程序设计中,开发者需要掌握前端(客户端)和后端(服务器端)的技术,以及如何...
在Web开发中,MySQL常作为后端存储,用于保存和检索网站或应用的数据。通过PHP,开发者可以编写SQL语句来操作数据库,实现数据的增删改查。 集成安装程序通常包括以下步骤: 1. 下载:从可靠的来源获取...
在`mysql-installer-web-community-5.6.11.0.msi` 文件中,我们可以找到MySQL Community Server的安装程序。社区版是MySQL的一个免费版本,适合个人和小型项目使用,提供了完整的数据库服务器功能。5.6.11.0是该版本...