Tous les produits
Search
Centre de documentation

AnalyticDB:Créer un index de texte intégral

Dernière mise à jour :Aug 10, 2026

Les index de texte intégral vous permettent d'exécuter des requêtes de recherche en texte intégral sur les colonnes VARCHAR dans AnalyticDB for MySQL. Cette rubrique explique comment créer, vérifier et supprimer des index de texte intégral sur des tables nouvelles et existantes.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster AnalyticDB for MySQL exécutant la version V3.1.4.9 ou ultérieure (version V3.1.4.17 ou ultérieure recommandée)

Pour vérifier la version de votre cluster, consultez la rubrique Comment interroger la version d'un cluster AnalyticDB for MySQL ?.

Limitations

  • Vous ne pouvez créer un index de texte intégral que sur une seule colonne à la fois. Pour indexer plusieurs colonnes, exécutez une instruction FULLTEXT distincte pour chaque colonne.

  • Les index de texte intégral sont uniquement pris en charge sur les colonnes de type VARCHAR.

Fonctionnement

L'application des index de texte intégral dans AnalyticDB for MySQL varie selon le moment où les données ont été écrites :

  • Données nouvellement écrites : indexées en temps réel ; aucune étape supplémentaire n'est requise.

  • Données historiques : non indexées automatiquement. Après l'ajout de l'index, exécutez l'instruction BUILD TABLE ... force=true; pour indexer les lignes existantes. Les requêtes portant sur les données historiques ne sont pas accélérées tant que la tâche BUILD n'est pas terminée.

Créer un index de texte intégral lors de la création d'une table

Syntaxe

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'

index_option peut être :

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

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

Paramètres

Paramètre Description
table_name Nom de la table. Doit comporter entre 1 et 127 caractères (lettres, chiffres ou traits de soulignement) et commencer par une lettre ou un trait de soulignement. Utilisez le format db_name.table_name pour distinguer les tables portant le même nom dans différentes bases de données.
column_name Nom de la colonne. Doit comporter entre 1 et 127 caractères (lettres, chiffres ou traits de soulignement) et commencer par une lettre ou un trait de soulignement.
column_type Type de données de la colonne. Au moins une colonne doit être de type VARCHAR. Pour connaître les types de données pris en charge, consultez la rubrique Types de données de base.
column_attributes Attributs de colonne. Pour plus de détails, consultez la rubrique CREATE TABLE.
column_constraints Contraintes de colonne. Pour plus de détails, consultez la rubrique CREATE TABLE.
FULLTEXT Déclare un index de texte intégral.
`INDEX KEY`

Identificateur de mot-clé pour l'index. Soit INDEX, soit KEY est accepté.

index_name Nom de l'index de texte intégral.
analyzer_name Analyseur à utiliser pour la tokenisation. S'il est omis, l'analyseur par défaut est utilisé. Pour connaître les analyseurs disponibles, consultez la rubrique Analyseurs pour les index de texte intégral.
tbl_dict_name Dictionnaire personnalisé à utiliser. Pour plus de détails, consultez la rubrique Dictionnaires personnalisés pour les index de texte intégral.

Exemple

Créez une table nommée tbl_fulltext_name avec un index de texte intégral sur la colonne content :

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

Vérifiez que l'index a bien été créé :

SHOW INDEX FROM tbl_fulltext_name;

Résultat attendu :

+-------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| 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   |         |               |
+-------------------+------------+---------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

L'entrée fidx_c avec Index_type = FULLTEXT confirme que l'index a été créé avec succès.

Ajouter un index de texte intégral à une table existante

Syntaxe

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

Exemple

Les étapes suivantes permettent d'ajouter un index de texte intégral à une table existante et d'indexer ses données historiques.

  1. Créez une table nommée 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. Ajoutez un index de texte intégral nommé fidx_k sur la colonne keyword en utilisant l'analyseur standard :

    Si aucun analyseur n'est spécifié, l'analyseur par défaut est utilisé. Pour connaître les analyseurs disponibles, consultez la rubrique Analyseurs pour les index de texte intégral .
    ALTER TABLE `tbl_fulltext_name` ADD FULLTEXT INDEX fidx_k(`keyword`) WITH ANALYZER standard;
  3. Générez l'index pour les données historiques existantes. Les lignes écrites avant l'étape 2 ne sont pas consultables tant que cette tâche BUILD n'est pas terminée.

    BUILD TABLE `tbl_fulltext_name` force=true;

    Le temps nécessaire dépend du volume de données présent dans la table.

Supprimer un index de texte intégral

Syntaxe

ALTER TABLE table_name DROP FULLTEXT INDEX index_name;

Exemple

Supprimez l'index de texte intégral fidx_k de la table tbl_fulltext_name :

ALTER TABLE `tbl_fulltext_name` DROP FULLTEXT INDEX fidx_k;

Étapes suivantes