CREATE TABLE `test_utf8` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(200) DEFAULT NULL,
`body` mediumtext,
PRIMARY KEY (`id`),
FULLTEXT KEY `ft_utf8` (`title`,`body`) WITH PARSER scws_parser
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `test_utf8` VALUES (1, 'MySQL Tutorial', 'DBMS stands for DataBase ...');
INSERT INTO `test_utf8` VALUES (2, 'How To Use MySQL Efficiently', 'After you went through a ...');
INSERT INTO `test_utf8` VALUES (3, 'Optimising MySQL', 'In this tutorial we will show ...');
INSERT INTO `test_utf8` VALUES (4, '1001 MySQL Tricks', '1. Never run mysqld as root. 2. ...');
INSERT INTO `test_utf8` VALUES (5, 'MySQL vs. YourSQL', 'In the following database comparison ...');
INSERT INTO `test_utf8` VALUES (6, 'MySQL Security', 'When configured properly, MySQL ...');
INSERT INTO `test_utf8` VALUES (7, '中国测试', '这样可以吗');
INSERT INTO `test_utf8` VALUES (8, '疯狂测中国测试', '这样总应该可以吗');
INSERT INTO `test_utf8` VALUES (9, '中国语言测试', '这样又是行不行呢');
INSERT INTO `test_utf8` VALUES (10, '我爱china', 'china是我的祖国');
6) 测试查询:
-- 第一句因为 mysql 出现的次数太多(默认超过1半)被忽略了
SELECT * FROM test_utf8 WHERE MATCH(title, body) AGAINST ('mysql');
SELECT * FROM test_utf8 WHERE MATCH(title, body) AGAINST ('mysql' IN BOOLEAN MODE);
SELECT * FROM test_utf8 WHERE MATCH(title, body) AGAINST ('中国');
SELECT * FROM test_utf8 WHERE MATCH(title, body) AGAINST ('+中国 -疯狂' IN BOOLEAN MODE);
10. 自定义函数 SCWS_SEGMENT(),将输入的字符串分词并返回以空格相连的字符串;
1) 创建函数(只需一次):CREATE FUNCTION scws_segment RETURNS STRING SONAME 'libftscws.so';
mysql> SELECT SCWS_SEGMENT(title) FROM test_utf8;
+-------------------------------+
| SCWS_SEGMENT(title) |
+-------------------------------+
| MySQL Tutorial |
| How To Use MySQL Efficiently |
| Optimising MySQL |
| 1001 MySQL Tricks |
| MySQL vs . YourSQL |
| MySQL Security |
| 中国 测试 |
| 疯狂 测 中国 测试 |
| 中国 语言 测试 |
| 我爱 china |
+-------------------------------+
10 rows in set (0.00 sec)
11. 自定义函数 SCWS_TOPWORDS(),该函数返回字符串中的核心关键词列表;
1) 创建函数(只需一次):CREATE FUNCTION scws_topwords RETURNS STRING SONAME 'libftscws.so';