São 128.
Ainda não sei se está documentado em algum lugar, mas isso é do fonte :
/* Maximum number of words supported in a phrase or proximity search. */
#define MAX_PROXIMITY_ITEM 128
...
if (num_token > MAX_PROXIMITY_ITEM) {
query->error = DB_FTS_TOO_MANY_WORDS_IN_PHRASE;
goto func_exit;
}
Uma experiência prática suporta isso:
MariaDB [foo]> select match(name) against(concat('"', repeat('foo ', 128), '" @8')) from test;
...
6 rows in set (0.01 sec)
MariaDB [foo]> select match(name) against(concat('"', repeat('foo ', 129), '" @8')) from test;
ERROR 191 (HY000): Too many words in a FTS phrase or proximity search