如何在MySQL中获得更好的搜索结果

2016-01-29 14:57 7 1 收藏

如何在MySQL中获得更好的搜索结果,如何在MySQL中获得更好的搜索结果

【 tulaoshi.com - MySQL 】

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/mysql/)

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

从创建例子表格开始,使用以下的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 singleOne 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!');

验证数据的正确录入:

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

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

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/mysql/)

SHOW INDEXES FROM reviews; Table Column_name Packed Null Index_type Comment reviews id NULL BTREE reviews data NULL YES FULLTEXT

当您拥有了数据和索引,就可以使用M

来源:http://www.tulaoshi.com/n/20160129/1494827.html

延伸阅读
标签: Web开发
节点簇式归类搜索 Mooter搜索引擎:http://www.mooter.com/moot 相对于传统的搜索引擎结果平板式显示,Mooter这个搜索引擎可谓是独树一帜,它在搜索结果中以节点簇的形式显示若干个与搜索关键字相关的内容。这种网状分支结构非常直观明了,更有助于浏览者迅速找到所需的有效结果。尤其是在仅需了解搜索结果在某一领域的资料时,更为事半...
如何在win7系统中清空电脑的搜索记录?   如果是自己的电脑还好,若是那些公用的电脑,特别是在公共场合的电脑,我想,谁也不愿意让别人看到自己的搜索记录吧?现在的高科技犯罪真的很猖獗,没有别人做不到的,只有你想不到的,也许就是这样不经意留下的搜索记录信息,便会让别人有机可趁,今天,图老师小编就以win7 32位系统下载为例...
标签: 电脑入门
Win10和Win8一样,在使用系统的搜索功能时,默认会显示来自网络的搜索结果,如下图。而且呢,这个网络搜索结果是来自微软自家搜索引擎Bing,并非国人更喜欢的百度。那么如果我们不想让搜索结果显示网络内容,要怎么做呢? 操作方法 第一步、按下Win+C,调出Win10隐藏的Charm栏,点击里面的设置。也可以在开始菜单中,找到并点击电脑设置...
标签: ASP
  启动pb7.0,创建一个不可视的用户对象"uo_customer",新建"object",选择"custom  class" 类型,点击"ok"。 在新创建的用户对象中编写如下程序: 1.声明实例变量"instance  variables",对于com中不支持的类型,请声明为protected类型。protected: datastore  ds_datastore 2.新建三个成员函数: int  uf_connect...
全文索引在 MySQL 中是一个FULLTEXT类型索引。FULLTEXT索引用于MyISAM表,可以在CREATE TABLE时或之后使用ALTER TABLE或CREATE INDEX在CHAR、VARCHAR或TEXT列上创建。对于大的数据库,将数据装载到一个没有FULLTEXT索引的表中,然后再使用ALTER TABLE(或CREATE INDEX) 创建索引,这将是非常快的。将数据装载到一个已经有FULLTEXT索引的表中...

经验教程

160

收藏

9
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部