Todos os produtos
Search
Central de documentação

Tablestore:Collapse (remover duplicatas)

Última atualização: Aug 28, 2026

O recurso collapse remove duplicatas de um conjunto de resultados de consulta com base em uma coluna especificada, garantindo que cada valor único apareça apenas uma vez nos resultados retornados. Use o collapse para manter a diversidade dos resultados quando uma única categoria domina o conjunto retornado.

Esse recurso deduplica (Distinct) na maioria dos cenários, funcionando como uma deduplicação pela coluna de colapso. No entanto, aplica-se apenas a colunas dos tipos inteiro, ponto flutuante e Keyword. Colunas do tipo array não são compatíveis, e o retorno limita-se aos primeiros 100.000 resultados ordenados.

Limites de uso

Antes de usar o recurso collapse, observe as seguintes restrições:

  • Tipos de coluna compatíveis — O recurso aplica-se exclusivamente a colunas dos tipos inteiro, ponto flutuante e Keyword. Não há suporte para colunas do tipo array.

  • Paginação — A paginação é suportada apenas por meio de offset e limit. Paginação baseada em token não está disponível.

  • Agregação — Ao combinar agregação estatística com o recurso collapse, a agregação considera apenas o conjunto de resultados anterior à operação de colapso.

  • Limite de contagem de grupos — Após a operação de colapso, o número total de grupos retornados depende da soma máxima de offset mais limit. O sistema retorna no máximo 100.000 grupos.

  • Contagem total — O número total de linhas na resposta corresponde às linhas correspondentes antes da operação de colapso. Não é possível obter a contagem total de grupos após essa operação.

Parâmetros

O recurso collapse é fornecido pela operação Search e implementado por meio do parâmetro collapse. A tabela a seguir descreve os parâmetros usados em uma consulta com collapse.

Parâmetro

Descrição

query

Qualquer tipo de consulta.

collapse

Configurações de colapso, que incluem a definição de fieldName. fieldName: nome da coluna pela qual o conjunto de resultados será colapsado. Este parâmetro aplica-se apenas a colunas dos tipos inteiro, ponto flutuante e Keyword. Colunas do tipo array não são compatíveis.

offset

Posição inicial da consulta atual.

limit

Número máximo de linhas a retornar na consulta atual. Para obter apenas a contagem de linhas sem precisar dos dados, defina limit como 0. Nenhuma linha será retornada.

getTotalCount

Define se o número total de linhas correspondentes deve ser retornado. O valor padrão é false, indicando que a contagem total não será retornada. Retornar esse valor afeta o desempenho da consulta.

tableName

Nome da tabela de dados.

indexName

Nome do índice de busca.

columnsToGet

Especifica se todas as colunas devem ser retornadas. Inclui as configurações returnAll e columns. O valor padrão de returnAll é false, indicando que nem todas as colunas serão retornadas. Nesse caso, use columns para especificar quais retornar. Se você não usar columns para essa especificação, apenas as colunas de chave primária serão retornadas. Se definir returnAll como true, todas as colunas serão incluídas no resultado.

Uso

Use a interface de linha de comando ou um SDK para colapsar resultados durante a consulta de dados.

Uso da interface de linha de comando

Execute o comando search na interface de linha de comando para consultar dados usando um índice de busca e configure o parâmetro Collapse nas condições de consulta para ativar o recurso. Para mais detalhes, consulte Search indexes.

  • Execute o comando search para consultar dados na tabela por meio de um índice de busca e retornar todas as colunas indexadas.

search -n search_index --return_all_indexed
  • Insira as condições de consulta conforme solicitado. O código abaixo serve como exemplo:

{
    "Offset": -1,
    "Limit": 10,
    "Collapse": {
        "FieldName": "product_name"
    },
    "Sort": null,
    "GetTotalCount": true,
    "Token": null,
    "Query": {
        "Name": "MatchQuery",
        "Query": {
            "FieldName": "user_id",
            "Text": "00002",
            "MinimumShouldMatch": 1
        }
    }
}

A tabela a seguir descreve os principais campos do exemplo:

Campo

Descrição

Offset

Posição inicial da consulta. O valor -1 indica que nenhum offset será aplicado.

Limit

Quantidade máxima de linhas a retornar.

Collapse.FieldName

Nome da coluna usada para deduplicação dos resultados. Neste exemplo, product_name atua como coluna de colapso. Substitua esse valor pelo nome da sua coluna alvo.

Query

Condições da consulta. Este exemplo usa MatchQuery na coluna user_id. Substitua o nome do campo e o texto de consulta pelos seus próprios valores.

Após o retorno dos resultados, verifique se o recurso collapse funciona conforme esperado, confirmando que os valores na coluna de colapso são únicos nas linhas retornadas.

Uso de um SDK

Use o Java SDK, Go SDK, Python SDK, Node.js SDK, .NET SDK ou PHP SDK para colapsar resultados durante a consulta de dados. O exemplo a seguir usa o Java SDK para demonstrar o uso do recurso collapse.

O exemplo abaixo consulta todas as linhas, colapsa os resultados pelo campo category e ordena as linhas pelo campo price em ordem decrescente. A linha com o maior preço em cada categoria é retornada.

SearchQuery searchQuery = new SearchQuery();
searchQuery.setQuery(new MatchAllQuery());
searchQuery.setLimit(10);
searchQuery.setCollapse(new Collapse("category"));
searchQuery.setSort(new Sort(
        Arrays.asList(new FieldSort("price", SortOrder.DESC))));

SearchRequest.ColumnsToGet columnsToGet =
        new SearchRequest.ColumnsToGet();
columnsToGet.setColumns(Arrays.asList("category", "price"));

SearchRequest request =
        new SearchRequest("example_table", "example_index", searchQuery);
request.setColumnsToGet(columnsToGet);

SearchResponse response = client.search(request);
System.out.println(response.getRows());

Consulta de dados

No modo VCU (antigo modo Reservado), a consulta de dados via índice de busca consome recursos computacionais de VCUs. Já no modo CU (antigo modo Pay-As-You-Go), essa operação consome throughput de leitura. Para mais informações, consulte Search index billing.

A consulta de dados por meio de um índice de busca consome throughput de leitura. Para mais detalhes, consulte Billable items of search indexes.

O uso do recurso collapse durante consultas não altera as regras de faturamento vigentes.

Perguntas frequentes

Referências