Todos os produtos
Search
Central de documentação

AnalyticDB:Criar um índice full-text

Última atualização: Jun 27, 2026

Índices full-text permitem executar consultas de busca full-text em colunas VARCHAR no AnalyticDB for MySQL. Este tópico aborda a criação, a verificação e a remoção de índices full-text em tabelas novas e existentes.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster do AnalyticDB for MySQL com a versão V3.1.4.9 ou posterior (recomenda-se a V3.1.4.17 ou posterior)

Para verificar a versão do cluster, consulte Como consultar a versão de um cluster do AnalyticDB for MySQL?.

Limitações

  • Crie um índice full-text em apenas uma coluna por vez. Para indexar várias colunas, execute uma instrução FULLTEXT separada para cada uma.

  • Índices full-text são compatíveis apenas com colunas do tipo VARCHAR.

Como funciona

No AnalyticDB for MySQL, a aplicação de índices full-text varia conforme o momento da gravação dos dados:

  • Dados recém-gravados: indexação em tempo real, sem etapas adicionais.

  • Dados históricos: não há indexação automática. Após adicionar o índice, execute BUILD TABLE ... force=true; para indexar as linhas existentes. Consultas sobre dados históricos não terão aceleração até a conclusão da tarefa BUILD.

Criar um índice full-text ao criar uma tabela

Sintaxe

CREATE TABLE [IF NOT EXISTS] table_name (
  column_name column_type [column_attributes] [column_constraints] [COMMENT 'string'],
  [FULLTEXT [INDEX|KEY] [index_name] (column_name) [index_option]],
  ...
)
table_attribute
[partition_options]
[AS] query_expression
COMMENT 'string'

Onde index_option pode ser:

-- Specify the analyzer (optional):
WITH ANALYZER analyzer_name

-- Specify a custom dictionary (optional):
WITH DICT tbl_dict_name

Parâmetros

Parâmetro

Descrição

table_name

Nome da tabela. Deve ter de 1 a 127 caracteres (letras, dígitos ou sublinhados) e começar com letra ou sublinhado. Use o formato db_name.table_name para diferenciar tabelas homônimas em bancos de dados distintos.

column_name

Nome da coluna. Deve ter de 1 a 127 caracteres (letras, dígitos ou sublinhados) e começar com letra ou sublinhado.

column_type

Tipo de dados da coluna. Pelo menos uma coluna deve ser do tipo VARCHAR. Para tipos de dados compatíveis, consulte Tipos de dados básicos.

column_attributes

Atributos da coluna. Para mais detalhes, consulte CREATE TABLE.

column_constraints

Restrições da coluna. Para mais detalhes, consulte CREATE TABLE.

FULLTEXT

Declara um índice full-text.

`INDEX

KEY`

Identificador de palavra-chave do índice. Aceita INDEX ou KEY.

index_name

Nome do índice full-text.

analyzer_name

Analisador para tokenização. Se omitido, o sistema usa o analisador padrão. Para analisar os analisadores disponíveis, consulte Analisadores para índices full-text.

tbl_dict_name

Dicionário personalizado. Para mais informações, consulte Dicionários personalizados para índices full-text.

Exemplo

Crie uma tabela chamada tbl_fulltext_name com um índice full-text na coluna content:

CREATE TABLE `tbl_fulltext_name` (
  `id` int,
  `content` varchar,
  `keyword` varchar,
  FULLTEXT INDEX fidx_c(`content`),
  PRIMARY KEY (`id`)
) DISTRIBUTED BY HASH(id);

Verifique a criação do índice:

SHOW INDEX FROM tbl_fulltext_name;

Saída esperada:

+-------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table             | Non_unique | Key_name      | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| tbl_fulltext_name |          0 | PRIMARY       |            1 | id          | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| tbl_fulltext_name |          1 | id_0_idx      |            1 | id          | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| tbl_fulltext_name |          1 | keyword_2_idx |            1 | keyword     | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| tbl_fulltext_name |          1 | fidx_c        |            1 | content     | A         |           0 |     NULL | NULL   |      | FULLTEXT   |         |               |
+-------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

A entrada fidx_c com Index_type = FULLTEXT confirma a criação bem-sucedida do índice.

Adicionar um índice full-text a uma tabela existente

Sintaxe

ALTER TABLE `table_name` ADD FULLTEXT [INDEX|KEY] index_name (column_name) [index_option]

Exemplo

Siga estas etapas para adicionar um índice full-text a uma tabela existente e indexar dados históricos.

  1. Crie uma tabela chamada tbl_fulltext_name:

    CREATE TABLE `tbl_fulltext_name` (
      `id` int,
      `content` varchar,
      `keyword` varchar,
      FULLTEXT INDEX fidx_c(`content`),
      PRIMARY KEY (`id`)
    ) DISTRIBUTED BY HASH(id) INDEX_ALL = 'N';
  2. Adicione um índice full-text chamado fidx_k na coluna keyword com o analisador standard:

    Se nenhum analisador for especificado, o sistema usará o padrão. Para consultar os analisadores disponíveis, veja Analisadores para índices full-text .
    ALTER TABLE `tbl_fulltext_name` ADD FULLTEXT INDEX fidx_k(`keyword`) WITH ANALYZER standard;
  3. Compile o índice para os dados históricos existentes. Linhas gravadas antes da etapa 2 não estarão pesquisáveis até a conclusão dessa tarefa BUILD.

    BUILD TABLE `tbl_fulltext_name` force=true;

    O tempo necessário depende do volume de dados na tabela.

Remover um índice full-text

Sintaxe

ALTER TABLE table_name DROP FULLTEXT INDEX index_name;

Exemplo

Remova o índice full-text fidx_k da tabela tbl_fulltext_name:

ALTER TABLE `tbl_fulltext_name` DROP FULLTEXT INDEX fidx_k;

Próximos passos