Description:
Mysql doesn't index (fulltext) some words (e.g. via, per, from)
How to repeat:
show variables like 'ft_min%'
> 'ft_min_word_len', '1'
CREATE TABLE `test1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`text` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `aaa` (`text`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
INSERT INTO `test1` (`id`,`text`) VALUES (1,'del');
INSERT INTO `test1` (`id`,`text`) VALUES (2,'con');
INSERT INTO `test1` (`id`,`text`) VALUES (3,'via');
INSERT INTO `test1` (`id`,`text`) VALUES (4,'from');
INSERT INTO `test1` (`id`,`text`) VALUES (5,'home');
INSERT INTO `test1` (`id`,`text`) VALUES (6,'ab');
INSERT INTO `test1` (`id`,`text`) VALUES (7,'net');
INSERT INTO `test1` (`id`,`text`) VALUES (8,'test con');
INSERT INTO `test1` (`id`,`text`) VALUES (9,'a');
INSERT INTO `test1` (`id`,`text`) VALUES (10,'a via');
INSERT INTO `test1` (`id`,`text`) VALUES (11,'per');
SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST '+"del"' IN BOOLEAN MODE))
Expected: 1, Result: 1, Test: Ok
SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"con"' IN BOOLEAN MODE))
Expected: 2, Result: 2, Test: Ok
SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"via"' IN BOOLEAN MODE))
Expected: 2, Result: 0, Test: Fail
SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"from"' IN BOOLEAN MODE))
Expected: 1, Result: 0, Test: Fail
SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST '+"home"' IN BOOLEAN MODE))
Expected: 1, Result: 1, Test: Ok
SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"ab"' IN BOOLEAN MODE))
Expected: 1, Result: 1, Test: Ok
SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"net"' IN BOOLEAN MODE))
Expected: 1, Result: 1, Test: Ok
SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"per"' IN BOOLEAN MODE))
Expected: 1, Result: 0, Test: Fail
Thanks
Description: Mysql doesn't index (fulltext) some words (e.g. via, per, from) How to repeat: show variables like 'ft_min%' > 'ft_min_word_len', '1' CREATE TABLE `test1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `text` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `aaa` (`text`) ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1; INSERT INTO `test1` (`id`,`text`) VALUES (1,'del'); INSERT INTO `test1` (`id`,`text`) VALUES (2,'con'); INSERT INTO `test1` (`id`,`text`) VALUES (3,'via'); INSERT INTO `test1` (`id`,`text`) VALUES (4,'from'); INSERT INTO `test1` (`id`,`text`) VALUES (5,'home'); INSERT INTO `test1` (`id`,`text`) VALUES (6,'ab'); INSERT INTO `test1` (`id`,`text`) VALUES (7,'net'); INSERT INTO `test1` (`id`,`text`) VALUES (8,'test con'); INSERT INTO `test1` (`id`,`text`) VALUES (9,'a'); INSERT INTO `test1` (`id`,`text`) VALUES (10,'a via'); INSERT INTO `test1` (`id`,`text`) VALUES (11,'per'); SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST '+"del"' IN BOOLEAN MODE)) Expected: 1, Result: 1, Test: Ok SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"con"' IN BOOLEAN MODE)) Expected: 2, Result: 2, Test: Ok SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"via"' IN BOOLEAN MODE)) Expected: 2, Result: 0, Test: Fail SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"from"' IN BOOLEAN MODE)) Expected: 1, Result: 0, Test: Fail SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST '+"home"' IN BOOLEAN MODE)) Expected: 1, Result: 1, Test: Ok SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"ab"' IN BOOLEAN MODE)) Expected: 1, Result: 1, Test: Ok SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"net"' IN BOOLEAN MODE)) Expected: 1, Result: 1, Test: Ok SELECT count(*) FROM `test`.test1 AS `s` WHERE (MATCH (s.text) AGAINST ('+"per"' IN BOOLEAN MODE)) Expected: 1, Result: 0, Test: Fail Thanks