网络编程
位置:首页>> 网络编程>> 数据库>> 解析:怎样在MySQL中获得更好的搜索结果

解析:怎样在MySQL中获得更好的搜索结果

作者:bosinvhai 来源:赛迪网 发布时间:2008-11-27 15:19:00 

标签:

目前,很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录。在后台,这些程序使用在一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候。

MySQL数据库针对这一问题提供了一种基于内建的全文查找方式的解决方案。在此,开发者只需要简单地标记出需要全文查找的字段,然后使用特殊的MySQL方法在那些字段运行搜索,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜索),而且实现了更高质量的搜索,因为MySQL使用自然  语言来智能地对结果评级,以去掉不相关的项目。

此篇文章将向您讲述在MySQL中如何进行全文搜索。

1、设置基本表格

从创建例子表格开始,使用以下的SQL命令

mysql> CREATE TABLE reviews (id INT(5)
PRIMARY KEY NOT NULL AUTO_INCREMENT, data TEXT);


以上命令创建了一个简单的音乐专集资料库(主要是整段的文字),然后向这个表格中添加一些记录:

mysql> INSERT INTO `reviews` (`id`, `data`) VALUES
(1, 'Gingerboy has a new single out called Throwing Rocks.
It\'s great!');mysql> INSERT INTO `reviews` (`id`, `data`)
VALUES (2, 'Hello all, I really like the new Madonna single.
One of the hottest tracks currently playing...
I\'ve been listening to it all day');mysql> INSERT INTO `reviews`
(`id`, `data`)VALUES (3, 'Have you heard the new band Hotter
Than Hell?They have five members and they burn their
instruments when they play in concerts.
These guys totally rock! Like, awesome, dude!');


验证数据的正确录入:

mysql> SELECT * FROM reviews;
+----+--------------------------------------------+
| id | data                                       |
+----+--------------------------------------------+
|  1 | Gingerboy has a new single out called ...  |
|  2 | Hello all, I really like the new Madon ... |
|  3 | Have you heard the new band Hotter Than... |
3 rows in set (0.00 sec)

 
2、定义全文搜索字段

接下来,定义您要作为全文搜索索引的字段

mysql> ALTER TABLE reviews ADD FULLTEXT INDEX (data);
Query OK, 3 rows affected (0.21 sec)
Records: 3  Duplicates: 0  Warnings: 0


使用SHOW INDEXES命令来检查索引已经被添加了:

mysql> SHOW INDEXES FROM reviews;
+---------+---------------+--------+------+------------+---------+
| Table   | Column_name   | Packed | Null | Index_type | Comment |
----------+---------------+--------+------+------------+---------+
| reviews |  id           | NULL   |      | BTREE      |         ||
reviews |  data         | NULL   | YES  | FULLTEXT   |         |
+---------+---------------+--------+------+------------+---------+

0
投稿

猜你喜欢

  • Dreamweaver快捷键大全,记住一些常用的快捷键会大大提高你的网页设计效率,如果你都使用快捷键,那么如果你去面试工作就容易被录取,呵呵
  • QQWry.dat数据可以去百度搜索最新版本<%'======================================
  • 以下虚线框内为mk.asp文件的具体代码:<%filename="test.htm"if request
  • 在本机运行含有JavaScript代码的网页时(比如Google AD代码),IE浏览器会产生一个警告。这个“警告”确实很烦人,开始时还会误
  • 如题:我写入关键字到数据库,多的时候用|隔开了,我提取再做相关文章搜索的时候,我怎么提取用|隔开的文字啊,这样我就好用关键字做搜索啊 回复:
  • “输入框( Input )应当符合逻辑地划分为小组,这样大脑就可以很好的处理大堆区域间的关系。”– 《HTML权威指南》Web 应用程序总是
  • 下一代的 web 已经开始上路了,就在这个星期,MySpace 集成了 Google Gears,雅虎发布了新的 BrowserPlus,G
  • 因为我们现在的前端框架做性能优化,为了找到各个组件及框架的具体解析耗时,需要在框架中嵌入一个耗时测试工具,性能测试跟不同的计算机硬件配置有很
  • 如果是在Oracle10g之前,删除一个表空间中的数据文件后,其文件在数据库数据字典中会仍然存在,除非你删除表空间,否则文件信息不会清除。但
  • 大家都熟悉迅雷看看里面的电影人气指数这个小图标吧先看看我的效果图再看看迅雷的截图比较好看,是根据电影的人气指数来显示热度,下面我们就来模仿一
  • 写在前面的话:此篇还是asp相关的,相信玩ASP的都有这个感觉,当数据有5万多条时-------just like音乐网,要调用最新的10条
  • 像素误差看自己设计好上线的网站,偶尔会发觉像素行间出现了弹性空间,总在不经意间蹦出一定的差距。有些页面很难发现,比如活动类页面,这类页面多呈
  • asp如何实现当前月份距离以前某个时间的月份数 如今天是2011年1月份,我想知道离2010年3月,计算这中间一共是几个月 最佳答案 <
  • 本文介绍了prototype.js常用函数及其使用方法例子说明函数名      
  • 在SQL Server数据库中,如果执行Transact-SQL时出现了错误,我们可以使用两种捕捉错误的方法解决此问题,一种是在客户端代码(
  • 一、介绍这篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。虽然这
  • 第一次见到《Web标准和SEO应用实践》是在我们UCD书友会《设计沟通十器》新书发布现场,机械工业出版社的朋友还带了很多相关新书过来,当时本
  • 一定要对用户可能输入的诸如引号,尖括号等特殊字符给予足够重视,它们可能引发严重的安全问题。SQL注入的基本手法之一,就是利用对单引号未加过滤
  • 如何用Cookie进行登录验证?很简单,看看这两个文件:login.htm请注册登录随风起舞<FORM ACTION=&qu
  • 这些小东西是我在网上看到的就把它记下来了,可能以后会有用的:      &nbs
手机版 网络编程 asp之家 www.aspxhome.com