Q: MATCH AGAINST in MySQL not showing records when search for string less than 4 chars I am using FULLTEXT index on a column and when I use MATCH....AGAINST in boolean mode for any search term which is less than 4 characters in length then it doesn't return any records. And when I use LIKE then it does return records.
What could be the problem? Is it because of some MySQL limitation like it doesn't index words that are less than 4 chars in length or some limitation specific to FULLTEXT index?
Thanks

A: Check your ft_min_word_len system variable. That defines the minimum length of words to be indexed. 
Update: Ok I did some tests with ft_min_word_len=3
First a test table
CREATE  TABLE `test`.`table1` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `name` TEXT NULL ,
  PRIMARY KEY (`id`) ,
  FULLTEXT INDEX `Name` (`name` ASC) )
ENGINE = MyISAM;

Next some test data:
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');

Running this:
SELECT * FROM `test`.`table1` t1 WHERE match(`t1`.`name`) against ('led' in boolean mode)

Returns this:
1   This has led in it
2   Led is nice

Running this:
SELECT * FROM `test`.`table1` t1 WHERE match(`t1`.`name`) against ('led*' in boolean mode)

Returns this:
1   This has led in it
2   Led is nice
3   Leds are nicer

So FT search works as expected. Any chance the word you are trying to find is actually something like leds and not the single word led?
