在线高分急求-Mysql全文搜索问题
在线急求,望各位大虾多多帮忙
MySQL中的全文搜索,即fulltext索引,
mysql> CREATE TABLE articles (
-> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
-> title VARCHAR(200),
-> body TEXT,
-> FULLTEXT (title,body)
-> );
mysql> INSERT INTO articles VALUES
-> (NULL,'MySQL Tutorial', 'DBMS stands for DataBase ...'),
-> (NULL,'How To Use MySQL Efficiently', 'After you went through a ...'),
-> (NULL,'Optimising MySQL','In this tutorial we will show ...'),
-> (NULL,'1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
-> (NULL,'MySQL vs. YourSQL', 'In the following database comparison ...'),
-> (NULL,'MySQL Security', 'When configured properly, MySQL ...');
Query OK, 6 rows affected (0.00 sec)
Records: 6 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM articles
-> WHERE MATCH (title,body) AGAINST ('database');
为什么上面的select语句无法部分匹配,上述查询无结果。
问题点数:20、回复次数:1Top
1 楼wyw5257(天地无用)回复于 2006-03-05 17:31:30 得分 0
mysql5的全文搜索还是很弱,按上面的(也是官方手册的)示例测试成功后,满怀欣喜想继续测试中文全文搜索,结果倒腾了半天也搜不出来,转字符集也是白搭。
再看手册。。。。Shit(怪我自己没有一次全阅读完),居然说中文等因为没有特定分隔符(像空格符),因此fulltext对此无效。
好了,这回麻烦来了,如果要做中文的全文搜索,需要自己对内容进行“规则性的”断词,偶的算法能力有限,就此打住。而且更要命的是按照这个解释,执行 SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('databas'); (去掉了最后的e),页将没有任何结果返回,这显然不是我所期望的。
目前我是只能等待mysql新版本以及新特性的发布了。。。。Top




