Todos os produtos
Search
Central de documentação

Tablestore:Collapse (distinct)

Última atualização: Jul 03, 2026

O recurso de collapse (distinct) remove duplicatas dos resultados de pesquisa com base em uma coluna especificada e retorna um resultado por valor único para aumentar a diversidade dos dados retornados.

Pré-requisitos

Observações

  • O recurso de collapse oferece suporte à paginação apenas pelo método Offset+Limit. O método de token não é compatível.

  • Se você usar agregação estatística e o recurso de collapse no mesmo conjunto de resultados, a agregação estatística será aplicada antes do colapso dos dados.

  • Após o uso do recurso de collapse, o número total de grupos retornados corresponde à soma de Offset e Limit. O máximo de grupos que podem ser retornados é 100.000.

  • O número total de linhas retornadas reflete a quantidade de linhas correspondentes antes da aplicação do collapse. Não é possível obter o número total de grupos após o colapso.

Parâmetros

Parâmetro

Descrição

TableName

Nome da tabela de dados.

IndexName

Nome do índice de pesquisa.

Query

Aceita qualquer tipo de consulta.

Collapse

Configurações do parâmetro de collapse, que incluem FieldName.

FieldName: nome da coluna usada para colapsar o conjunto de resultados. Este recurso aceita apenas colunas dos tipos inteiro, ponto flutuante e Keyword. Colunas do tipo array não são suportadas.

Offset

Posição inicial da consulta.

Limit

Número máximo de itens a serem retornados pela consulta.

Se precisar apenas da contagem de linhas sem os dados, defina Limit como 0. Nenhuma linha será retornada.

Exemplos

O exemplo abaixo consulta todas as linhas de uma tabela e aplica o collapse no conjunto de resultados com base na coluna pk0, garantindo que apenas uma linha por valor único de pk0 seja retornada.

/// <summary>
/// Collapses the result set by the pk0 column.
/// </summary>
/// <param name="otsClient"></param>
public static void UseCollapse(OTSClient otsClient)
{
    MatchAllQuery matchAllQuery = new MatchAllQuery();

    Collapse collapse = new Collapse();
    collapse.FieldName = "pk0";

    SearchQuery searchQuery = new SearchQuery();
    searchQuery.Query = matchAllQuery;
    searchQuery.Collapse = collapse;

    SearchRequest searchRequest = new SearchRequest(TableName, IndexName, searchQuery);

    SearchResponse searchResponse = otsClient.Search(searchRequest);

    foreach (Row row in searchResponse.Rows)
    {
        Console.WriteLine(JsonConvert.SerializeObject(row));
    }
}

FAQ

Referências