搜索之简单应用

在给三个表添加字段的时候,忽然发现会报3个date类型的字段的默许值错误,郁闷~

哪些在MySQL中取得更加好的全文字笔迹检查评定索结果  
作者: Techrepublic.com.com 
2006-04-03 11:14:53 

透过排查,原来是MySQL的配备难点,在wamp下,MySQL
五.七里是从未有过安装 SQL_MODE 的。

不少网络应用程序都提供了全文字笔迹检查实验索作用,用户能够选择一个词大概词语片断作为查询项目来定位匹配的记录。在后台,那个程序选用在三个SELECT查询中的LIKE语句来施行那种查询,就算这种艺术使得,但对此全文检索而言,那是1种作用极端低下的主意,越发在拍卖多量数量的时候。

壹.my.ini文书中找到 [mysqld]

MySQL针对那1标题提供了一种基于内建的全文字笔迹检测索方法的缓解方案。在此,开发者只需求简单地方统一标准记出要求全文字笔迹检查测试索的字段,然后利用尤其的MySQL方法在那几个字段运维搜索,那不仅提升了品质和功用(因为MySQL对这几个字段做了索引来优化搜索),而且达成了更加高品质的检索,因为MySQL使用自然语言来智能地对结果评级,以去掉不相干的种类。

二.1旦未有SQL_MODE,就拉长,有就修改一下

那篇文章将向您讲述在MySQL中什么进行全文字笔迹检测索。

sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

1、设置基本表格

3.重启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 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)

贰、定义全文检索字段

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

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

+———+—————+——–+——+————+———+

2 rows in set (0.01 sec)

3、运维全文字笔迹检测索

当你抱有了数码和目录,就足以应用MySQL的全文字笔迹检测索了,最简便易行的全文字笔迹检查实验索格局是富含MATCH…AGAINST语句的SELECT查询,以下是一个简单易行的事例,能够来寻找含有单词“single”的笔录:

mysql> SELECT id FROM reviews WHERE MATCH (data) AGAINST (‘single’);+—-+

| id |

网站地图xml地图