搜索之简单应用

在给1个表添加字段的时候,忽然发现会报贰个date类型的字段的私下认可值错误,郁闷~

如何在MySQL中获取越来越好的全文字笔迹检查评定索结果  
作者: Techrepublic.com.com 
2006-04-03 11:14:53 

透过排查,原来是MySQL的配置难题,在wamp下,MySQL
伍.七里是没有安装 SQL_MODE 的。

很多互连网应用程序都提供了全文字笔迹检查实验索效果,用户能够选择2个词恐怕词语片断作为查询项目来稳定相称的笔录。在后台,这个程序行使在二个SELECT查询中的LIKE语句来执行这种查询,就算那种措施使得,但对于全文字笔迹检查实验索而言,那是一种效能极端低下的艺术,尤其在拍卖大量数量的时候。

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

MySQL针对这一难点提供了1种基于内建的全文字笔迹检查实验索方法的化解方案。在此,开发者只须求简单地方统一标准记出要求全文检索的字段,然后使用特别的MySQL方法在那么些字段运转搜索,那不只进步了质量和功能(因为MySQL对那个字段做了索引来优化搜索),而且达成了越来越高品质的探寻,因为MySQL使用自然语言来智能地对结果评级,以去掉不相干的种类。

2.只要未有SQL_MODE,就拉长,有就修改一下

这篇小说将向你讲述在MySQL中怎么样进展全文字笔迹检查评定索。

sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

一、设置基本表格

3.重启MySQL;

从成立定确立法规案例子表格开首,使用以下的SQL命令:

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

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

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