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
Instância OTSClient inicializada. Para mais informações, consulte Inicializar um cliente do Tablestore.
Tabela de dados criada e preenchida. Para mais informações, consulte Criar uma tabela de dados e Gravar dados.
Índice de pesquisa criado para a tabela de dados. Para mais informações, consulte Criar um índice de pesquisa.
Observações
O recurso
collapseoferece suporte à paginação apenas comoffsetelimit. Não há suporte para paginação baseada em token.Ao usar agregação estatística e
collapseem um conjunto de resultados, a agregação é aplicada antes do agrupamento dos dados.Após o uso do recurso
collapse, os parâmetrosoffsetelimitlimitam 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.
|
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
-
Ao consultar dados com um índice de pesquisa, utilize os seguintes métodos: consulta de termo, consulta de termos, consulta match all, consulta match, consulta match phrase, consulta de prefixo, consulta de intervalo, consulta com curinga, consulta geográfica, consulta booleana, consulta vetorial KNN, consulta aninhada e consulta exists. Esses métodos permitem consultar dados em múltiplas dimensões conforme as necessidades do seu negócio.
Utilize os recursos de ordenação e paginação para classificar ou paginar as linhas que atendem às condições da consulta. Para mais informações, consulte Ordenação e paginação.
Use o recurso collapse (distinct) para agrupar o conjunto de resultados com base em uma coluna específica. 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 de dados, utilize o recurso de agregação da operação Search ou execute instruções SQL. É possível obter valores mínimos e máximos, somas e o número total de linhas, por exemplo. Para mais informações, consulte Agregação e Consulta SQL.
Caso precise obter todas as linhas correspondentes às condições da consulta sem a necessidade de ordená-las, chame as operações ParallelScan e ComputeSplits para utilizar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.