Qual é o número máximo de palavras permitido em uma consulta de pesquisa de texto completo do MariaDB InnoDB?

2

Recebi este erro ao realizar uma pesquisa com 746 palavras (não foi intencionalmente que alguém colou o texto na caixa errada).

HA_ERR_FTS_TOO_MANY_WORDS_IN_PHRASE: muitas palavras em uma frase ou pesquisa de proximidade do FTS

O servidor está usando o MariaDB 10.2.14, qual é o limite máximo? Não consegui encontrá-lo nos documentos do MariaDB ou do MySQL.

    
por Rwky 03.11.2018 / 23:36

1 resposta

2

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
    
por 04.11.2018 / 05:43