Todos os produtos
Search
Central de documentação

Tablestore:Configure the TTL of a search index

Última atualização: Jul 24, 2026

Configure o tempo de vida (TTL) de um índice de pesquisa com o Tablestore SDK for Java. O Tablestore remove automaticamente os dados do índice após o término do período de retenção.

Pré-requisitos

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

  • Tablestore SDK for Java 5.12.0 ou posterior instalado e um cliente inicializado

  • Uma tabela existente com no máximo uma versão de dados

Observações de uso

  • Antes de usar o gerenciamento de ciclo de vida do índice de pesquisa, desative as operações UpdateRow na tabela para evitar inconsistências de dados entre a tabela e o índice de pesquisa.

    O TTL da tabela aplica-se a colunas de atributos individuais, enquanto o TTL do índice de pesquisa aplica-se à linha inteira. Com UpdateRow, a limpeza por TTL pode remover apenas algumas colunas da tabela, mantendo toda a linha no índice de pesquisa.

    Para atualizar dados, use PutRow para sobrescrever a linha inteira.

  • O TTL do índice de pesquisa é medido em segundos e aceita -1 ou um inteiro positivo de 32 bits. O valor -1 armazena os dados permanentemente. O valor positivo máximo representa um período de retenção de aproximadamente 68 anos.

  • Os TTLs do índice de pesquisa e da tabela são configurados independentemente, mas o TTL do índice de pesquisa deve ser menor ou igual ao TTL da tabela. Se o TTL desejado para o índice de pesquisa for maior que o TTL atual da tabela, aumente primeiro o TTL da tabela. Caso reduza ambos os TTLs, diminua primeiro o TTL do índice de pesquisa.

  • O Tablestore remove os dados expirados do índice de pesquisa uma vez por dia. Até a conclusão da próxima limpeza, as consultas ainda podem retornar dados expirados pendentes de remoção.

  • Após a atualização do TTL da tabela ou do índice de pesquisa, o Tablestore remove os dados expirados devido à alteração durante o próximo ciclo de limpeza.

Procedimento

O gerenciamento de ciclo de vida consiste em desativar atualizações via UpdateRow para a tabela, configurar o TTL do índice de pesquisa e, opcionalmente, configurar o TTL da tabela. A configuração do TTL da tabela nem sempre é a última operação. A ordem das operações deve garantir que o TTL do índice de pesquisa seja menor ou igual ao TTL da tabela. Se o TTL desejado para o índice de pesquisa for maior que o TTL atual da tabela, aumente primeiro o TTL da tabela. Caso reduza ambos os TTLs, diminua primeiro o TTL do índice de pesquisa.

  1. Desative as atualizações da tabela com UpdateRow.

    O exemplo a seguir desativa as atualizações via UpdateRow para 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. Configure o TTL do índice de pesquisa.

    Escolha uma opção conforme a existência do índice de pesquisa.

    Novo índice

    Defina um TTL de sete dias ao criar um índice de pesquisa.

    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);

    Índice existente

    Atualize o TTL de um índice de pesquisa existente para sete dias.

    String tableName = "example_table";
    String indexName = "example_index";
    UpdateSearchIndexRequest request =
            new UpdateSearchIndexRequest(tableName, indexName);
    request.setTimeToLiveInDays(7);
    
    client.updateSearchIndex(request);
  3. Configure o TTL da tabela, se necessário.

    O exemplo a seguir define o TTL de example_table como sete dias. Execute esta operação antes ou depois de configurar o TTL do índice de pesquisa, conforme a restrição de TTL descrita acima.

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

Após a configuração, consulte as table information e as search index information para verificar ambos os TTLs.