Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL full text search for words with three or less letters

I'm trying to get my full text search (in boolean mode) to retrieve words with three letters or less.

Currently, if I search for something like "NBA", I don't get any results.

However, if I append the wild card operator "*" to the search term, I get results.

I also read that you could remove the three word limit in my.ini, but I'm wondering if there was a better way to do this on the fly.

like image 636
Digital Craft Studios Avatar asked Oct 18 '09 18:10

Digital Craft Studios


Video Answer


1 Answers

This section of the manual might interest you : 11.8.6. Fine-Tuning MySQL Full-Text Search (quoting a portion of it) :

The minimum and maximum lengths of words to be indexed are defined by the ft_min_word_len and ft_max_word_len system variables. The default minimum value is four characters; the default maximum is version dependent. If you change either value, you must rebuild your FULLTEXT indexes.
For example, if you want three-character words to be searchable, you can set the ft_min_word_len variable by putting the following lines in an option file:

[mysqld]
ft_min_word_len=3

Then you must restart the server and rebuild your FULLTEXT indexes.

(You should read that page, for more informations I didn't copy-paste ;-) )

like image 93
Pascal MARTIN Avatar answered Oct 19 '22 03:10

Pascal MARTIN