MariaDB InnoDB 全文搜索查询中允许的最大字数是多少

MariaDB InnoDB 全文搜索查询中允许的最大字数是多少

当我使用 746 个字进行搜索时,我收到此错误(有人将文本粘贴到错误的框中并非故意的)。

HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE:FTS 短语或邻近搜索中的单词太多

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

答案1

是 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

相关内容