`

Mysql下的Web程序,如何实现全文检索

阅读更多

首先要说,实现全文搜索一般都不用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为全文搜索索引
  1.   CREATE TABLE `articles` (  
  2.     `id` int(10) unsigned NOT NULL auto_increment,  
  3.     `title` varchar(200)  default  NULL,  
  4.     `body` text,  
  5.     PRIMARY KEY  (`id`),  
  6.     FULLTEXT KEY `title` (`title`,`body`)  
  7.  ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;  
2 插入一些数据
  1. INSERT INTO `articles` (`id`, `title`, `body`) VALUES   
  2. (1,  'MySQL Tutorial' 'DBMS stands for DataBase ...' ),  
  3. (2,  'How To Use MySQL Efficiently' 'After you went through a ... stands' ),  
  4. (3,  'Optimising MySQL' 'In this tutorial we will show ...' ),  
  5. (4,  '1001 MySQL Tricks' '1. Never run mysqld as root. 2. ...' ),  
  6. (5,  'MySQL vs. YourSQL' 'In the following database comparison ...' ),  
  7. (6,  'MySQL Security' 'When configured properly, MySQL ...' );  
3 全文搜索

最简单的全文搜索方式是带有MATCH...AGAINST语句的SELECT查询
  1. SELECT *   
  2. FROM `articles`   
  3. WHERE MATCH (  
  4. body  
  5. )  
  6. AGAINST (  
  7. 'MySQL'   
  8. )  
4 使用逻辑搜索修饰符(Boolean search modifiers)
++表示必须
+表示要有的-表示不能有的
不带+或者-表示,任意一种
  1. SELECT *   
  2. FROM articles  
  3. WHERE MATCH (  
  4. body  
  5. )  
  6. AGAINST (  
  7. '+mysql +When'   
  8. IN BOOLEAN  
  9. MODE   
  10. )  
  11. SELECT *   
  12. FROM articles  
  13. WHERE MATCH (  
  14. body  
  15. )  
  16. AGAINST (  
  17. '+database -DBMS'   
  18. IN BOOLEAN  
  19. MODE   
  20. )  
  21. SELECT *   
  22. FROM articles  
  23. WHERE MATCH (  
  24. body  
  25. )  
  26. AGAINST (  
  27. 'database DBMS'   
  28. IN BOOLEAN  
  29. MODE   
  30. )  
注意搜索的字段长度最好大于5,否则可能找不到
< type="text/javascript"> < type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
转贴请注明出处:http://blog.csdn.net/froole
分享到:
评论

相关推荐

    一种MySQL数据库全文检索的实现方法.pdf

    MySQL 数据库全文检索的实现方法 MySQL 是一种关系型数据库管理系统,广泛应用于各种 Web 应用程序中。随着数据量的增长,全文检索功能变得越来越重要。本文介绍了一种 MySQL 数据库全文检索的实现方法,基于 UTF-8...

    C#连接MySQL需要的MySql.Data.dll,MySql.Web.dll

    4. **Profile提供程序**:允许在MySQL中存储和检索用户的个性化设置。 在C#项目中使用这些DLL时,需要将其添加到项目的引用中。如果使用的是Visual Studio,可以通过"项目"-&gt;"添加引用"-&gt;"浏览",然后选择对应的DLL...

    PHP+MySQL开发Web程序教程下载

    将PHP与MySQL结合,可以实现Web应用程序的数据存储和检索。例如,通过PHP,你可以创建一个用户注册系统,其中用户提交的信息被发送到服务器,然后用PHP处理这些数据,将它们插入到MySQL数据库中。当用户登录时,PHP...

    Web程序设计13 Web程序设计13 Web程序设计13 Web程序设计13

    Web程序设计是构建和维护互联网应用程序的关键领域,它涵盖了多种技术和工具,用于创建交互式的、动态的、用户友好的网站。在这个主题中,"Web程序设计13"可能指的是一个课程或者系列教程的第13个部分,着重于进一步...

    mysql启动与web

    总结来说,MySQL启动与Web的关系主要体现在Web应用程序通过数据库连接与MySQL交互,以实现数据的存储和检索。同时,Ajax技术在不刷新整个页面的情况下提供了与服务器通信的能力,提高了用户体验。理解并熟练掌握这些...

    MySql.Web.dll

    MySQL.Web.dll 特别适用于 ASP.NET 开发者,它允许他们轻松地在 .NET 环境中集成 MySQL 数据库服务,实现数据的存储和检索。 这个 DLL 文件的功能主要包括: 1. **数据库连接管理**:提供与 MySQL 服务器建立、...

    MySQL和JSP的Web应用程序(外文翻译).pdf

    - **MySQL** 是一个流行的开源关系型数据库管理系统,常用于Web应用程序中,提供高效的数据存储、检索和管理服务。 - **JSP(Java Server Pages)** 是一种基于Java的服务器端技术,用于创建动态网页。它允许开发者...

    Java Web连接MySQl小程序

    Java Web连接MySQL数据库是开发Web应用时常见的任务,主要用于存储和检索数据。在这个小型程序中,我们将探讨如何使用Java Web技术栈(包括Servlet、JSP)以及Java Database Connectivity (JDBC) API来实现这一功能...

    jsp+servlet+mysql留言web程序大作业分享

    【标题】"jsp+servlet+mysql留言web程序大作业分享"揭示了这是一个基于Web的开发项目,使用了Java Server Pages (JSP)、Servlet和MySQL数据库来构建一个留言系统。这个系统允许用户提交留言,存储在数据库中,并能...

    第18章MySQL在Web开发中的应用.docx

    - 数据库系统:MySQL,存储和检索Web应用所需的数据。 - 浏览器:如Chrome、Firefox等,用户通过浏览器查看和交互网页内容。 2. 表单数据接收方式: - GET:数据附加在URL后面,可见且有长度限制,不安全,适用...

    PHP and MySQL Web Development(Fourth Edition)

    MySQL则是世界上最流行的开源关系型数据库管理系统之一,它为开发者提供了高效的数据存储和检索功能。书中详细讲解了MySQL的安装和配置,数据库设计原则,以及如何创建、查询、更新和删除数据库中的数据。读者将掌握...

    PHP和MySQL Web开发第4版pdf以及源码

    《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...

    PHP与MySQL.WEB开发(中文版)

    在Web开发中,MySQL常作为数据存储和检索的核心,用于处理用户提交的数据、实现动态内容和数据的持久化。书中会涵盖MySQL的安装与配置、SQL语言基础、表的设计、查询操作、事务处理、存储过程等内容,帮助读者理解...

    精通PHP 4.0与MySQL架构Web数据库(PDG)

    《精通PHP 4.0与MySQL架构Web数据库》是一本专为PHP初学者和进阶者设计的教程,旨在帮助读者全面掌握使用PHP 4.0版本与MySQL数据库构建高效、安全的Web应用。该书可能包含了从基础的PHP语法到复杂的数据库交互,以及...

    php和mysqlweb开发书籍推荐

    1. **《PHP & MySQL Web Development》**:这是一本全面介绍如何使用PHP和MySQL开发Web应用程序的书籍。内容涵盖了从基础知识到高级技术的各个方面,适合初学者和有经验的开发者阅读。 2. **《PHP Cookbook》**:...

    Web程序设计电子教案\Web程序设计实验手册 完整版

    《Web程序设计电子教案》与《Web程序设计实验手册》是学习Web开发的重要参考资料,尤其适合初学者和希望深入理解Web技术的学员。这两份资料提供了全面、详细的Web开发知识,涵盖从基础到进阶的各种主题。 Web程序...

    Web程序设计10 Web程序设计10 Web程序设计10 Web程序设计10

    【标题】: "Web程序设计10" 是一个关于深入学习Web开发的课程或主题,可能涵盖了一系列关于创建和维护Web应用程序的技术和概念。在Web程序设计中,开发者需要掌握前端(客户端)和后端(服务器端)的技术,以及如何...

    php+apache+mysql集成安装程序

    在Web开发中,MySQL常作为后端存储,用于保存和检索网站或应用的数据。通过PHP,开发者可以编写SQL语句来操作数据库,实现数据的增删改查。 集成安装程序通常包括以下步骤: 1. 下载:从可靠的来源获取...

    mysql-installer-web.zip

    在`mysql-installer-web-community-5.6.11.0.msi` 文件中,我们可以找到MySQL Community Server的安装程序。社区版是MySQL的一个免费版本,适合个人和小型项目使用,提供了完整的数据库服务器功能。5.6.11.0是该版本...

Global site tag (gtag.js) - Google Analytics