Todos os produtos
Search
Central de documentação

Tablestore:Collapse (distinct)

Última atualização: Jul 03, 2026

Se uma consulta retornar muitos resultados com um valor comum em uma coluna específica, use o recurso collapse. Esse recurso agrupa o conjunto de resultados por essa coluna e garante que cada valor único apareça apenas uma vez nos resultados, permitindo visualizar um conjunto de dados mais diversificado.

Pré-requisitos

Observações

  • O recurso collapse oferece suporte à paginação apenas com offset e limit. Não há suporte para paginação baseada em token.

  • Ao usar agregação estatística e collapse em um conjunto de resultados, a agregação é aplicada antes do agrupamento dos dados.

  • Após o uso do recurso collapse, os parâmetros offset e limit limitam o número total de grupos retornados. O recurso pode retornar no máximo 100.000 grupos.

  • A contagem total de linhas retornada nos resultados refere-se ao número de linhas correspondentes antes da operação collapse. Não é possível obter o número total de grupos após o agrupamento.

Parâmetros

Parâmetro

Descrição

query

Tipo de consulta. Defina este parâmetro como qualquer tipo de consulta válido.

collapse

Agrupa o conjunto de resultados com base na coluna especificada pelo campo field_name.

field_name: nome da coluna usada como base para agrupar o conjunto de resultados. Há suporte apenas para colunas com valores dos tipos INTEGER, FLOATING-POINT e KEYWORD.

offset

Posição inicial da consulta atual.

limit

Número máximo de linhas que a consulta atual deve retornar.

Para consultar apenas a quantidade de linhas que atendem às condições, sem recuperar os dados específicos dessas linhas, defina o parâmetro limit como 0.

get_total_count

Especifique se o sistema deve retornar o número total de linhas correspondentes às condições da consulta. O valor padrão é false, indicando que a contagem total não será retornada.

Definir este parâmetro como true compromete o desempenho da consulta.

table_name

Nome da tabela de dados.

index_name

Nome do índice de pesquisa.

columns_to_get

Define se todas as colunas de cada linha correspondente devem ser retornadas. Configure os campos return_type e column_names para este parâmetro.

  • Se definir o campo return_type como ColumnReturnType.SPECIFIED, use o campo column_names para especificar quais colunas retornar.

  • Se definir o campo return_type como ColumnReturnType.ALL, todas as colunas serão retornadas.

  • Se definir o campo return_type como ColumnReturnType.NONE, apenas as colunas de chave primária serão retornadas.

Exemplo

O código de exemplo abaixo demonstra como consultar linhas onde o valor da coluna price é igual a 1000. Neste cenário, o conjunto de resultados é agrupado com base no valor da coluna product_name.

# Construct a query condition to query all products whose value of the price field is 1000. 
query = TermQuery('price', 1000)

# Collapse the result set based on the "product_name" column. 
collapse = Collapse('product_name')
search_response = client.search('<TABLE_NAME>', '<SEARCH_INDEX_NAME>',
                                SearchQuery(query, limit=100, get_total_count = False, collapse_field = collapse),
                                columns_to_get = ColumnsToGet(return_type = ColumnReturnType.ALL_FROM_INDEX))
print('request_id : %s' % search_response.request_id)
print('is_all_succeed : %s' % search_response.is_all_succeed)
print('total_count : %s' % search_response.total_count)
print('rows : %s' % search_response.rows)

FAQ

Referências