Todos os produtos
Search
Central de documentação

AnalyticDB:Analisadores para índices de texto completo

Última atualização: Jul 16, 2026

O AnalyticDB for MySQL oferece seis analisadores integrados para índices de texto completo: AliNLP, IK, Standard, Ngram, Edge_ngram e Pattern. Cada analisador utiliza uma estratégia de tokenização diferente. Escolha a opção mais adequada conforme seus requisitos de idioma, o padrão de busca (fuzzy, prefixo ou correspondência exata) e a necessidade de processamento de texto em chinês.

Escolha um analisador

Analisador

Mais indicado para

Suporte a idiomas

Dicionário personalizado

AliNLP

Tokenização baseada em NLP para chinês e multilíngue

Chinês, inglês, indonésio, malaio, tailandês, vietnamita, francês, espanhol

Sim

IK

Texto em chinês com granularidade configurável

Chinês

Sim

Standard

Texto em inglês com filtragem de stop words

Regras específicas por idioma

Sim

Ngram

Busca fuzzy de substrings

Qualquer

Sim

Edge_ngram

Busca por prefixo e autocompletar

Qualquer

Sim

Pattern

Tokenização baseada em delimitadores personalizados via expressões regulares

Qualquer

Não

Analisador padrão por versão do cluster:

  • Clusters anteriores à V3.1.4.15: analisador AliNLP

  • Clusters V3.1.4.15 ou posteriores: analisador IK

Para verificar a versão secundária do seu cluster, consulte Como visualizo a versão secundária de um cluster?

Especifique um analisador

Sintaxe

FULLTEXT INDEX idx_name(`column_name`) [ WITH ANALYZER analyzer_name ] [ WITH DICT tbl_dict_name];

Parâmetros

Parâmetro

Descrição

idx_name

Nome do índice de texto completo.

column_name

Nome da coluna a indexar.

WITH ANALYZER analyzer_name

Analisador a utilizar. Omita este parâmetro para usar o analisador padrão.

WITH DICT tbl_dict_name

Dicionário personalizado a aplicar. Para mais detalhes, consulte Dicionários personalizados para índices de texto completo.

Exemplo

A instrução a seguir cria uma tabela com seis índices de texto completo, um para cada analisador:

CREATE TABLE `tbl_fulltext_demo` (
  `id` int,
  `content` varchar,
  `content_alinlp` varchar,
  `content_ik` varchar,
  `content_standard` varchar,
  `content_ngram` varchar,
  `content_edge_ngram` varchar,
  FULLTEXT INDEX fidx_c(`content`),                                           -- Default analyzer
  FULLTEXT INDEX fidx_alinlp(`content_alinlp`) WITH ANALYZER alinlp,
  FULLTEXT INDEX fidx_ik(`content_ik`) WITH ANALYZER ik,
  FULLTEXT INDEX fidx_standard(`content_standard`) WITH ANALYZER standard,
  FULLTEXT INDEX fidx_ngram(`content_ngram`) WITH ANALYZER ngram,
  FULLTEXT INDEX fidx_edge_ngram(`content_edge_ngram`) WITH ANALYZER edge_ngram,
  PRIMARY KEY (`id`)
) DISTRIBUTED BY HASH(id);

Visualize os resultados da tokenização

Antes de definir um analisador, teste como ele tokeniza seu texto. Cada analisador possui uma função de teste dedicada que retorna a lista de tokens para uma string de entrada específica.

Adicione o prefixo /*+ mode=two_phase*/ a todas as consultas de teste de tokenização; caso contrário, elas não serão executadas corretamente.

Os exemplos a seguir usam a mesma entrada — 'Hello world' — em todos os analisadores para permitir a comparação direta das saídas:

Analisador

Função de teste

**Saída para 'Hello world'**

AliNLP

fulltext_alinlp_test()

[hello, , world]

IK

fulltext_ik_test()

[hello, world, or]

Standard

fulltext_standard_test()

[hello, world]

Ngram (tamanho padrão do token: 2)

fulltext_ngram_test()

[he, el, ll, lo, o , w, wo, or, rl, ld]

Edge_ngram (mín: 1, máx: 2)

fulltext_edge_ngram_test()

[h, he]

Uso:

/*+ mode=two_phase*/ SELECT fulltext_ik_test('Hello world');
[hello, world, or]
O analisador Pattern não suporta testes de tokenização baseados em SQL.

Analisador AliNLP

Ideal para textos em chinês e multilíngues. A Alibaba Cloud e a DAMO Academy desenvolveram o analisador AliNLP com tecnologia de processamento de linguagem natural (NLP). Ele segmenta textos consecutivos de linguagem natural em partes significativas e aceita dicionários personalizados para entidades definidas pelo usuário e stop words.

Idiomas suportados: Chinês, inglês, indonésio, malaio, tailandês, vietnamita, francês, espanhol

  • Resultado da tokenização para texto em inglês:

    /*+ mode=two_phase*/ SELECT fulltext_alinlp_test('Hello world');

    Resultado:

    [hello,  , world]

Os exemplos a seguir mostram os resultados da tokenização com as configurações padrão:

Parâmetros de configuração

Parâmetro Descrição Padrão
FULLTEXT_SPLIT_GRANULARITY Granularidade da segmentação. Número inteiro de 2 a 8. 2
FULLTEXT_FILTER_ST_CONVERT_ENABLED Ativa a conversão de radicais (ex.: menman, carscar). false
FULLTEXT_TOKENIZER_CASE_SENSITIVE Define se a tokenização diferencia maiúsculas de minúsculas. false

Analisador IK

Recomendado para textos em chinês. O analisador IK é uma solução open-source e leve para o idioma chinês. Ele suporta dois modos de segmentação — granulação grossa e granulação fina — e aceita dicionários personalizados para entidades e stop words.

  • Resultado da tokenização para texto em inglês:

    /*+ mode=two_phase*/ SELECT fulltext_ik_test('Hello world');

    Resultado:

    [hello, world, or]

Os exemplos a seguir mostram os resultados da tokenização com as configurações padrão:

Parâmetros de configuração

Parâmetro

Descrição

Padrão

CSTORE_IK_SEGMENTER_USE_SMART_ENABLE

Modo de segmentação. true = granulação grossa (modo ik_smart); false = granulação fina (modo ik_max_word).

false

CSTORE_IK_SEGMENTER_LETTER_MIN_LENGTH

Comprimento mínimo do segmento. Número inteiro de 2 a 16.

3

CSTORE_IK_SEGMENTER_LETTER_MAX_LENGTH

Comprimento máximo do segmento. Número inteiro de 2 a 256.

128

Analisador Standard

Indicado para texto em inglês. O analisador Standard aplica regras específicas do idioma: para inglês, converte o texto para minúsculas e remove stop words e pontuação antes da tokenização; para chinês, divide o texto em caracteres individuais. Este analisador suporta dicionários personalizados.

  • Resultado da tokenização para texto em inglês:

    /*+ mode=two_phase*/ SELECT fulltext_standard_test('Hello world');

    Resultado:

    [hello, world]

Os exemplos a seguir mostram os resultados da tokenização com as configurações padrão:

Parâmetros de configuração

Parâmetro

Descrição

Padrão

FULLTEXT_MAX_TOKEN_LENGTH

Comprimento máximo do token. Número inteiro de 1 a 1.048.576.

255

Analisador Ngram

Ideal para busca fuzzy de substrings. O analisador Ngram divide o texto em todas as substrings possíveis de comprimento fixo, o que o torna eficaz para consultas de correspondência parcial. Ele suporta dicionários personalizados.

  • Resultado da tokenização para texto em inglês:

    /*+ mode=two_phase*/ SELECT fulltext_ngram_test('Hello world');

    Resultado:

    [he, el, ll, lo, o ,  w, wo, or, rl, ld]

Os exemplos a seguir mostram os resultados da tokenização com as configurações padrão:

Parâmetros de configuração

Parâmetro

Descrição

Padrão

FULLTEXT_NGRAM_TOKEN_SIZE

Comprimento do token. Número inteiro de 1 a 8.

2

Analisador Edge_ngram

Indicado para busca por prefixo e autocompletar (busca enquanto digita). O analisador Edge_ngram gera tokens de prefixo com comprimento crescente — por exemplo, h, depois he — sendo ideal para corresponder palavras desde o início. Ele suporta dicionários personalizados.

Dica: O Edge_ngram funciona bem quando o termo de busca aparece no início das palavras. Para correspondência fuzzy de substrings em qualquer parte do texto, utilize o analisador Ngram.
  • Resultado da tokenização para texto em inglês:

    /*+ mode=two_phase*/ SELECT fulltext_edge_ngram_test('Hello world');

    Resultado:

    [h, he]

Os exemplos a seguir mostram os resultados da tokenização com as configurações padrão:

Parâmetros de configuração

Parâmetro

Descrição

Padrão

FULLTEXT_MIN_GRAM_SIZE

Comprimento mínimo do prefixo. Número inteiro de 1 a 8.

1

FULLTEXT_MAX_GRAM_SIZE

Comprimento máximo do prefixo. Número inteiro de 1 a 16. Deve ser maior que FULLTEXT_MIN_GRAM_SIZE.

2

Analisador Pattern

Indicado para delimitadores personalizados. O analisador Pattern tokeniza o texto dividindo-o com base em um padrão de expressão regular definido por você. Ele não suporta dicionários personalizados nem testes de tokenização via SQL.

Sintaxe

FULLTEXT INDEX fidx_name(`column_name`) WITH ANALYZER pattern_tokenizer("Custom_rule") [ WITH DICT `tbl_dict_name` ];

Custom_rule é a expressão regular que define o padrão de divisão.

Parâmetros de configuração

Parâmetro

Descrição

Padrão

FULLTEXT_TOKENIZER_CASE_SENSITIVE

Define se a tokenização diferencia maiúsculas de minúsculas.

false

Gerencie a configuração do analisador

Consulte os parâmetros de configuração

Utilize um dos métodos abaixo para verificar o valor atual de um parâmetro de configuração.

Método 1: SHOW adb_config

Retorna tanto os valores padrão quanto os modificados.

show adb_config key = '<analyzer_param>';

Exemplo:

show adb_config key = 'FULLTEXT_NGRAM_TOKEN_SIZE';

Método 2: SELECT no INFORMATION_SCHEMA

Retorna apenas os valores modificados. Se um parâmetro nunca tiver sido alterado em relação ao padrão, esta consulta retornará null.

SELECT `key`, `value`, `update_time`
FROM INFORMATION_SCHEMA.kepler_meta_configs
WHERE key = '<analyzer_param>';

Exemplo:

SELECT `key`, `value`, `update_time`
FROM INFORMATION_SCHEMA.kepler_meta_configs
WHERE key = 'FULLTEXT_NGRAM_TOKEN_SIZE';

Modifique os parâmetros de configuração

set adb_config <analyzer_param>=<value>;

Exemplo:

set adb_config FULLTEXT_NGRAM_TOKEN_SIZE=3;