现在的位置: 首页 > IT运维 > 正文

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

2011年04月08日 IT运维 ⁄ 共 1690字 暂无评论 ⁄ 被围观 0+

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 | |

+---------+---------------+--------+------+------------+---------+

在MySQL数据库中搜索功能是MySQL数据库中比较重要的功能之一,使用全文搜索给数据库管理带来了很大的便利。

 

给我留言

您必须 [ 登录 ] 才能发表留言!

×
#