Use o recurso de collapse (distinct) para agrupar o conjunto de resultados com base em uma coluna específica quando a consulta retornar grandes volumes de dados de um mesmo tipo. Os dados desse tipo aparecem apenas uma vez nos resultados, o que garante a diversidade dos tipos de resultado.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
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 índices de pesquisa.
Observações de uso
O recurso de collapse permite paginação apenas pelos parâmetros Offset e Limit, sem suporte a tokens.
A agregação ocorre antes do agrupamento quando ambos são aplicados simultaneamente ao conjunto de resultados.
Em consultas com collapse, o número total de itens retornados corresponde à soma dos valores de Offset e Limit, com limite máximo de 100.000 resultados.
O total de linhas na resposta reflete a quantidade que atende aos critérios da consulta antes da aplicação do collapse (distinct). Não é possível consultar esse total após o agrupamento do conjunto de resultados.
Parâmetros
|
Parâmetro |
Descrição |
|
TableName |
Nome da tabela de dados. |
|
IndexName |
Nome do índice de pesquisa. |
|
Query |
Tipo da consulta. Aceita qualquer tipo de consulta disponível. |
|
Collapse |
Parâmetro de agrupamento, que inclui o parâmetro FieldName. FieldName: nome da coluna usada como base para agrupar o conjunto de resultados. Suporta apenas colunas com valores dos tipos de dados INTEGER, FLOATING-POINT e KEYWORD. |
|
Offset |
Posição inicial da consulta atual. |
|
Limit |
Número máximo de linhas a retornar na consulta atual. Defina o parâmetro Limit como 0 para obter apenas a contagem de linhas que atendem aos critérios da consulta, sem recuperar os dados. |
Código de exemplo
O exemplo abaixo demonstra como consultar linhas em que o valor de user_id corresponde a "00002" e agrupar o conjunto de resultados com base no valor da coluna product_name:
func QueryWithCollapse(client *tablestore.TableStoreClient, tableName string, indexName string) {
searchRequest := &tablestore.SearchRequest{}
searchRequest.SetTableName(tableName) // Specify the name of the table.
searchRequest.SetIndexName(indexName) // Specify the name of the search index.
searchQuery := search.NewSearchQuery()
searchQuery.SetQuery(&search.MatchQuery{ // Specify the query conditions.
FieldName: "user_id",
Text: "00002",
})
searchQuery.SetCollapse(&search.Collapse{
FieldName: "product_name", // Collapse the result set based on the value of the product_name column.
})
searchQuery.SetOffset(0)
searchQuery.SetLimit(100)
searchRequest.SetColumnsToGet(&tablestore.ColumnsToGet{ReturnAll:true}) // Return all columns in the rows that meet the query conditions.
searchRequest.SetSearchQuery(searchQuery)
searchResponse, err := client.Search(searchRequest) // Perform the query.
if err != nil {
fmt.Println("Failed to search with error:", err)
return
}
for _, row := range searchResponse.Rows { // Display the rows that are returned.
jsonBody, err := json.Marshal(row)
if err != nil {
panic(err)
}
fmt.Println("Row: ", string(jsonBody))
}
}
FAQ
Referências
-
Consultas com índice de pesquisa oferecem 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. Use esses métodos para buscar dados sob múltiplas dimensões, conforme as necessidades do seu negócio.
Classifique ou pagine as linhas que atendem aos critérios da consulta usando os recursos de ordenação e paginação. Para mais informações, consulte Ordenação e Paginação.
Use o recurso de 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 (deduplicar).
Analise dados de uma tabela usando o recurso de agregação da operação Search ou executando instruções SQL. É possível obter, por exemplo, valores mínimos e máximos, somas e contagem total de linhas. Para mais informações, consulte Agregação e Consulta SQL.
Para obter todas as linhas que atendem aos critérios da consulta sem ordená-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Executar uma varredura paralela.