Todos os produtos
Search
Central de documentação

Tablestore:Collapse (distinct)

Última atualização: Oct 09, 2026

Use o recurso de collapse para remover duplicatas dos resultados de busca com base em uma coluna específica. Quando os resultados da consulta contêm grandes volumes de dados de um tipo específico, o collapse exibe esses dados apenas uma vez nos resultados retornados, garantindo a diversidade dos tipos de resultado.

Pré-requisitos

Limites de uso

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

  • Tipos de coluna compatíveis — O recurso de collapse aplica-se apenas a colunas dos tipos integer, floating-point number e Keyword. Colunas do tipo array não são compatíveis.

  • Paginação — A paginação com o recurso de collapse funciona apenas por meio de offset e limit. Não há suporte à paginação baseada em token.

  • Agregação — Ao usar agregação estatística junto com o recurso de collapse, a agregação aplica-se somente ao conjunto de resultados antes da operação de collapse.

  • Limite de contagem de grupos — Após a operação de collapse, o número total de grupos retornados depende do valor máximo de offset somado a limit. O sistema retorna no máximo 100.000 grupos.

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

Parâmetros

Parâmetro

Descrição

table_name

Nome da tabela de dados.

index_name

Nome do índice de busca.

query

Tipo de consulta. Defina como qualquer tipo de consulta compatível.

collapse

Agrupa o conjunto de resultados pela coluna especificada. Apenas colunas INTEGER, FLOATING-POINT e KEYWORD são compatíveis.

field_name: nome da coluna usada para o agrupamento.

offset

Posição inicial da consulta.

limit

Número máximo de linhas a retornar. Defina limit como 0 para retornar apenas a contagem de linhas, sem os dados reais.

Exemplos

O código de exemplo a seguir demonstra como usar um índice de busca para obter até 10 registros únicos do tipo keyword na tabela php_sdk_test e retornar os dados das colunas col1 e col2.

$request = array(
    'table_name' => 'php_sdk_test',
    'index_name' => 'php_sdk_test_search_index',
    'search_query' => array(
        'offset' => 0,
        'limit' => 10,
        'get_total_count' => true,
        'collapse' => array(
            'field_name' => 'keyword'
        ),
        'query' => array(
            'query_type' => QueryTypeConst::MATCH_ALL_QUERY
        ),
//        'sort' => array(// Specify a specific sorting method if required. 
//            array(
//                'field_sort' => array(
//                    'field_name' => 'keyword',
//                    'order' => SortOrderConst::SORT_ORDER_ASC
//                )
//            ),
//        ),
        'token' => null,
    ),
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
        'return_names' => array('col1', 'col2')
    )
);
$response = $otsClient->search($request);

FAQ

Referências

  • Ao consultar dados com um índice de busca, use os seguintes métodos: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query e exists query. Combine diferentes métodos para buscar dados em múltiplas dimensões conforme as necessidades do seu negócio.

    Para ordenar ou paginar as linhas que atendem às condições da consulta, use o recurso de ordenação e paginação. Para mais informações, consulte Sorting and paging.

    Caso precise agrupar o conjunto de resultados com base em uma coluna específica, use o recurso de collapse (distinct). Assim, os dados do tipo especificado aparecem apenas uma vez nos resultados da consulta. Para mais informações, consulte Collapse (distinct).

  • Para analisar dados em uma tabela, como obter valores extremos, soma e número total de linhas, execute operações de agregação ou instruções SQL. Para mais informações, consulte Aggregation e SQL query.

  • Se precisar obter rapidamente todas as linhas que atendem às condições da consulta sem ordená-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Parallel scan.