Mysql

MariaDB InnoDB 全文搜尋查詢中允許的最大單詞數是多少

  • November 4, 2018

我在執行包含 746 個單詞的搜尋時收到此錯誤(有人將文本粘貼到錯誤的框中不是故意的)。

HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE:FTS 片語或鄰近搜尋中的單詞太多

伺服器使用的是 MariaDB 10.2.14,最大限制是多少?我在 MariaDB 或 MySQL 文件中找不到它。

是 128。

我還不知道它是否記錄在任何地方,但這來自

/* 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;
   }

一個實際的實驗支持:

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

引用自:https://serverfault.com/questions/938527