Fine-Tuning MySQL Full-Text Search common words, it would be better to search using  IN BOOLEAN MODE  instead, which does not observe the 50% threshold. To change the operators used for boolean full-text searches on  MyISAM  tables, set the ft_boolean_syntax  system variable. ( InnoDB  does not have an equivalent setting.) This variable can be changed while the server is running, but you must have privileges sufficient to set global system variables (see Section 5.1.9.1, “System Variable Privileges” ). No rebuilding of indexes is necessary in this case. For the built-in full-text parser, you can change the set of characters that are considered word characters in several ways, as described in the following list. After making the modification, rebuild the indexes for each table that contains any  FULLTEXT  indexes. Suppose that you want to treat the hyphen character (’-’) as a word character. Use one of these methods: Modifying Boolean Full-Text Search Operators Character Set Modifications •Modify the MySQL source: In  storage/innobase/handler/ha_innodb.cc  (for  InnoDB ), or in storage/myisam/ftdefs.h  (for  MyISAM ), see the  true_word_char()  and  misc_word_char() macros. Add  ’-’  to one of those macros and recompile MySQL. •Modify a character set file: This requires no recompilation. The  true_word_char()  macro uses a “character type”  table to distinguish letters and numbers from other characters. . You can edit the contents of the  <ctype><map>  array in one of the character set XML files to specify that  ’-’  is a “letter.”  Then use the given character set for your  FULLTEXT  indexes. For information about the <ctype><map>  array format, see Section 10.13.1, “Character Definition Arrays” . •Add a new collation for the character set used by the indexed columns, and alter the columns to use that collation. For general information about adding collations, see Section 10.14, “Adding a Collation to a Character Set” . For an example specific to full-text indexing, see Section 12.10.7, “Adding a User- Defined Collation for Full-Text Indexing” . For the changes to take effect,  FULLTEXT  indexes must be rebuilt after modifying any of the following full-text index variables:  innodb_ft_min_token_size ;  innodb_ft_max_token_size ; innodb_ft_server_stopword_table ;  innodb_ft_user_stopword_table ; innodb_ft_enable_stopword ;  ngram_token_size . Modifying  innodb_ft_min_token_size , innodb_ft_max_token_size , or  ngram_token_size  requires restarting the server. To rebuild  FULLTEXT  indexes for an  InnoDB  table, use  ALTER TABLE  with the  DROP INDEX  and  ADD INDEX  options to drop and re-create each index. Running  OPTIMIZE TABLE  on a table with a full-text index rebuilds the full-text index, removing deleted Document IDs and consolidating multiple entries for the same word, where possible. To optimize a full-text index, enable  innodb_optimize_fulltext_only  and run  OPTIMIZE TABLE . mysql> set GLOBAL innodb_optimize_fulltext_only=ON; Query OK, 0 rows affected (0.01 sec) mysql> OPTIMIZE TABLE opening_lines; +--------------------+----------+----------+----------+ | Table | Op | Msg_type | Msg_text | +--------------------+----------+----------+----------+ 2220 Optimizing InnoDB Full-Text Indexes Rebuilding InnoDB Full-Text Indexes