MySQL 5.1 Reference Manual  /  ...  /  Full-Text Restrictions

12.9.5 Full-Text Restrictions

  • Full-text searches are supported for MyISAM tables only. (In MySQL 5.6 and up, they can also be used with InnoDB tables.)

  • Full-text searches are not supported for partitioned tables. See Section 18.5, “Restrictions and Limitations on Partitioning”.

  • Full-text searches can be used with most multibyte character sets. The exception is that for Unicode, the utf8 character set can be used, but not the ucs2 character set. However, although FULLTEXT indexes on ucs2 columns cannot be used, you can perform IN BOOLEAN MODE searches on a ucs2 column that has no such index.

  • Ideographic languages such as Chinese and Japanese do not have word delimiters. Therefore, the FULLTEXT parser cannot determine where words begin and end in these and other such languages. The implications of this and some workarounds for the problem are described in Section 12.9, “Full-Text Search Functions”.

  • Although the use of multiple character sets within a single table is supported, all columns in a FULLTEXT index must use the same character set and collation.

  • The MATCH() column list must match exactly the column list in some FULLTEXT index definition for the table, unless this MATCH() is IN BOOLEAN MODE. Boolean-mode searches can be done on nonindexed columns, although they are likely to be slow.

  • The argument to AGAINST() must be a string value that is constant during query evaluation. This rules out, for example, a table column because that can differ for each row.

  • Index hints are more limited for FULLTEXT searches than for non-FULLTEXT searches. See Section 8.9.3, “Index Hints”.

  • The '%' character is not a supported wildcard character for full-text searches.

Download this Manual
User Comments
  Posted by c f on June 4, 2006
Indexed columns must <= 1000 byte encoding.
  Posted by Howard Johnson on July 2, 2009
There is also a limitation of at most one other field match, i.e.

SELECT * FROM table WHERE MATCH (fieldlist) AGAINST ('cows horses') AND ( field2= '5286');
  Posted by Rafael Gutierrez Martinez on June 2, 2010
To create a fulltext index, all fields have to be of the same charset.
  Posted by Nasser W on September 2, 2013
MySQL fulltext search works well for Arabic. Just make sure of the following where needed:

1. `COLLATION = utf8_unicode_ci` & `CHARACTER SET = utf8`. (Databases, Tables, and Columns).
2. Index words of 3 letters and more. This is Very Important for Arabic, `ft_min_word_len = 3` (see `show variables like "ft_%";`)
3. Check the version of MySQL (5.5 or 5.6), and Engine (InnoDb or MyIsam)
Sign Up Login You must be logged in to post a comment.