Проверьте системную переменную ft_min_word_len
. Это определяет минимальную длину слов для индексации.
Обновление : Хорошо, я провел несколько тестов с ft_min_word_len=3
Первый тестовый стол
CREATE TABLE `test`.`table1` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` TEXT NULL ,
PRIMARY KEY (`id`) ,
FULLTEXT INDEX `Name` (`name` ASC) )
ENGINE = MyISAM;
Следующие тестовые данные:
INSERT INTO `test`.`table1` (`id`, `name`) VALUES ('1', 'This has led in it');
INSERT INTO `test`.`table1` (`id`, `name`) VALUES ('2', 'Led is nice');
INSERT INTO `test`.`table1` (`id`, `name`) VALUES ('3', 'Leds are nicer');
INSERT INTO `test`.`table1` (`id`, `name`) VALUES ('4', 'Nothin here');
INSERT INTO `test`.`table1` (`id`, `name`) VALUES ('5', 'some word which does not exists: abcleddef');
Запуск этого:
SELECT * FROM `test`.`table1` t1 WHERE match(`t1`.`name`) against ('led' in boolean mode)
Возвращает это:
1 This has led in it
2 Led is nice
Запуск этого:
SELECT * FROM `test`.`table1` t1 WHERE match(`t1`.`name`) against ('led*' in boolean mode)
Возвращает это:
1 This has led in it
2 Led is nice
3 Leds are nicer
Так что поиск FT работает, как и ожидалось. Есть шанс, что слово, которое вы пытаетесь найти, на самом деле похоже на leds
, а не на одно слово led
?