【发布时间】:2012-01-10 16:56:05
【问题描述】:
(mysql 5.1.36)
我试图找出为什么在全文查询中搜索单词“三”时没有得到任何结果。如果单词“three”是字段中唯一的文本,或者它是句子的一部分,我会得到相同的结果。
很容易复制:
CREATE TABLE `test`( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT , `word` TEXT NOT NULL , PRIMARY KEY (`id`) );
ALTER TABLE `test` ADD FULLTEXT `NewIndex1` (`word`);
INSERT INTO `test`(`id`,`word`) VALUES ( NULL,'three');
INSERT INTO `test`(`id`,`word`) VALUES ( NULL,'thorn');
然后运行这些查询:
SELECT * FROM test WHERE word='three';
结果 = [ 1, '三' ]
SELECT word FROM test WHERE MATCH(word) AGAINST ('three*' IN BOOLEAN MODE );
结果 = []
SELECT word FROM test WHERE MATCH(word) AGAINST ('three' IN BOOLEAN MODE);
结果 = []
SELECT word FROM test WHERE MATCH(word) AGAINST ('thre*' IN BOOLEAN MODE );
结果 = []
SELECT word FROM test WHERE MATCH(word) AGAINST ('thorn*' IN BOOLEAN MODE )
结果 = [ 2, '刺' ]
SELECT word FROM test WHERE MATCH(word) AGAINST ('thorn' IN BOOLEAN MODE)
结果 = [ 2, '刺' ]
SELECT word FROM test WHERE MATCH(word) AGAINST ('thor*' IN BOOLEAN MODE)
结果 = [ 2, '刺' ]
为什么全文搜索“三”没有返回结果?
【问题讨论】:
标签: mysql sql database full-text-search