Joh*_*ohn 4 mysql sql database full-text-search
(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');
Run Code Online (Sandbox Code Playgroud)
然后运行这些查询:
SELECT * FROM test WHERE word='three';
Run Code Online (Sandbox Code Playgroud)
结果= [1,'三']
SELECT word FROM test WHERE MATCH(word) AGAINST ('three*' IN BOOLEAN MODE );
Run Code Online (Sandbox Code Playgroud)
result = []
SELECT word FROM test WHERE MATCH(word) AGAINST ('three' IN BOOLEAN MODE);
Run Code Online (Sandbox Code Playgroud)
result = []
SELECT word FROM test WHERE MATCH(word) AGAINST ('thre*' IN BOOLEAN MODE );
Run Code Online (Sandbox Code Playgroud)
result = []
SELECT word FROM test WHERE MATCH(word) AGAINST ('thorn*' IN BOOLEAN MODE )
Run Code Online (Sandbox Code Playgroud)
结果= [2,'刺']
SELECT word FROM test WHERE MATCH(word) AGAINST ('thorn' IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)
结果= [2,'刺']
SELECT word FROM test WHERE MATCH(word) AGAINST ('thor*' IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)
结果= [2,'刺']
为什么全文搜索"三"没有返回结果?