Todos os produtos
Search
Central de documentação

Tablestore:Gerenciamento de linha do tempo

Última atualização: Aug 28, 2026

O gerenciamento de linha do tempo oferece duas operações em um TimelineStore: search e flush. A operação search consulta dados da linha do tempo por meio do índice de pesquisa do Tablestore, enquanto a operação flush conclui as solicitações de gravação pendentes no buffer de gravação em lote.

Search

O gerenciamento de linha do tempo baseia seu recurso de consulta na API Search do índice de pesquisa, que fornece funcionalidades como consulta difusa e consulta com múltiplas condições.

Importante

A operação search tem suporte apenas para um TimelineStore com IndexSchema configurado.

Ao configurar o IndexSchema de um TimelineStore, observe os seguintes requisitos para os campos indexados:

  • Tipos de dados — Os campos indexados aceitam tipos de dados como LONG, DOUBLE, BOOLEAN, KEYWORD, GEO_POINT e TEXT.

  • Propriedades de campo — As propriedades incluem Index, Store e Array, além do tipo de tokenizador. Essas propriedades têm os mesmos significados do índice de pesquisa. Para mais detalhes, consulte Data types.

  • Consulta difusa — Configure os campos desejados para consulta difusa como o tipo TEXT e defina o tipo de tokenizador necessário. Para obter mais informações sobre tokenização, consulte Tokenization. A operação search aceita duas formas de entrada, e ambas chamam timelineStore.search. Para corresponder um campo a um valor com uma expressão de condição, passe um SearchParameter:

/**
 * Search timeline by SearchParameter.
 * */
SearchParameter searchParameter = new SearchParameter(
        field("text").equals("fieldValue")
);
timelineStore.search(searchParameter);

Para passar um objeto de consulta como TermQuery e limitar o número de resultados com setLimit, use um SearchQuery:

/**
 * Search timeline by SearchQuery.
 * */
TermQuery query = new TermQuery();
query.setFieldName("text");
query.setTerm(ColumnValue.fromString("fieldValue"));
SearchQuery searchQuery = new SearchQuery().setQuery(query).setLimit(10);
timelineStore.search(searchQuery);

Gravação em lote e flush

O gerenciamento de linha do tempo implementa a gravação em lote no DefaultTableStoreWriter do SDK do Tablestore. As solicitações de gravação ainda não enviadas permanecem pendentes no buffer. Chame flush para acionar o envio dessas solicitações pendentes e aguarde sincronamente até que todas as mensagens sejam gravadas.

O código a seguir envia as mensagens pendentes no buffer e aguarda até que todas estejam armazenadas:

/**
 * Flush messages in buffer, and wait until all messages are stored.
 * */
timelineStore.flush();