Tous les produits
Search
Centre de documentation

Tablestore:Configure the TTL of a search index

Dernière mise à jour :Aug 18, 2026

Configurez la durée de vie (TTL) d'un index de recherche avec le SDK Tablestore pour Java. Tablestore supprime automatiquement les données de l'index à l'expiration de la période de rétention.

Prérequis

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

  • Le SDK Tablestore pour Java version 5.12.0 ou ultérieure installé, ainsi qu'un client initialisé

  • Une table existante comportant au maximum une version de données

Notes d'utilisation

  • Avant d'utiliser la gestion du cycle de vie des index de recherche, désactivez les opérations UpdateRow sur la table pour éviter toute incohérence des données entre la table et l'index de recherche.

    Le TTL d'une table s'applique aux colonnes d'attributs individuelles, tandis que le TTL d'un index de recherche s'applique à la ligne entière. Avec UpdateRow, le nettoyage lié au TTL peut supprimer uniquement certaines colonnes de la table tout en conservant la ligne entière dans l'index de recherche.

    Pour mettre à jour les données, utilisez PutRow afin d'écraser la ligne entière.

  • Le TTL d'un index de recherche est exprimé en secondes et accepte la valeur -1 ou un entier positif 32 bits. La valeur -1 permet de stocker les données de manière permanente. La valeur positive maximale correspond à une période de rétention d'environ 68 ans.

  • Le TTL de l'index de recherche et le TTL de la table sont configurés indépendamment, mais le TTL de l'index de recherche doit être inférieur ou égal au TTL de la table. Si le TTL cible de l'index de recherche est supérieur au TTL actuel de la table, augmentez d'abord le TTL de la table. Si vous réduisez les deux TTL, diminuez d'abord le TTL de l'index de recherche.

  • Tablestore supprime les données d'index de recherche expirées une fois par jour. Jusqu'à la fin du prochain nettoyage, les requêtes peuvent encore renvoyer des données expirées non supprimées.

  • Après la mise à jour du TTL d'une table ou d'un index de recherche, Tablestore supprime les données dont l'expiration résulte de cette modification lors du prochain cycle de nettoyage.

Procédure

La gestion du cycle de vie consiste à désactiver les mises à jour UpdateRow pour la table, à configurer le TTL de l'index de recherche et, éventuellement, à configurer le TTL de la table. La configuration du TTL de la table n'est pas toujours la dernière opération. L'ordre des opérations doit garantir que le TTL de l'index de recherche reste inférieur ou égal au TTL de la table. Si le TTL cible de l'index de recherche est supérieur au TTL actuel de la table, augmentez d'abord le TTL de la table. Si vous réduisez les deux TTL, diminuez d'abord le TTL de l'index de recherche.

  1. Désactivez les mises à jour de la table avec UpdateRow.

    L'exemple suivant désactive les mises à jour UpdateRow pour example_table.

    String tableName = "example_table";
    UpdateTableRequest request = new UpdateTableRequest(tableName);
    TableOptions tableOptions = new TableOptions();
    tableOptions.setAllowUpdate(false);
    request.setTableOptionsForUpdate(tableOptions);
    
    client.updateTable(request);
  2. Configurez le TTL de l'index de recherche.

    Choisissez une option selon que l'index de recherche existe déjà ou non.

    Nouvel index

    Définissez un TTL de sept jours lors de la création d'un index de recherche.

    String tableName = "example_table";
    String indexName = "example_index";
    IndexSchema indexSchema = new IndexSchema();
    indexSchema.setFieldSchemas(Arrays.asList(
            new FieldSchema("category", FieldType.KEYWORD),
            new FieldSchema("price", FieldType.LONG)));
    
    CreateSearchIndexRequest request = new CreateSearchIndexRequest();
    request.setTableName(tableName);
    request.setIndexName(indexName);
    request.setIndexSchema(indexSchema);
    request.setTimeToLiveInDays(7);
    
    client.createSearchIndex(request);

    Index existant

    Mettez à jour le TTL d'un index de recherche existant pour le fixer à sept jours.

    String tableName = "example_table";
    String indexName = "example_index";
    UpdateSearchIndexRequest request =
            new UpdateSearchIndexRequest(tableName, indexName);
    request.setTimeToLiveInDays(7);
    
    client.updateSearchIndex(request);
  3. Configurez le TTL de la table si nécessaire.

    L'exemple suivant définit le TTL de example_table sur sept jours. Exécutez cette opération avant ou après la configuration du TTL de l'index de recherche, en fonction de la contrainte de TTL décrite ci-dessus.

    String tableName = "example_table";
    UpdateTableRequest request = new UpdateTableRequest(tableName);
    TableOptions tableOptions = new TableOptions();
    tableOptions.setTimeToLiveInDays(7);
    request.setTableOptionsForUpdate(tableOptions);
    
    client.updateTable(request);

Après la configuration, consultez les informations sur la table et les informations sur l'index de recherche pour vérifier les deux TTL.