Use a consulta de intervalo para buscar dados dentro de um intervalo especificado. Se o tipo de campo for TEXT, os valores serão tokenizados. Uma linha atenderá às condições da consulta quando pelo menos um token corresponder ao intervalo definido.
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.
Parâmetros
|
Parâmetro |
Descrição |
|
TableName |
Nome da tabela de dados. |
|
IndexName |
Nome do índice de pesquisa. |
|
Query |
Tipo da consulta. Defina como RangeQuery. |
|
FieldName |
Nome do campo a ser correspondido. |
|
From |
Valor inicial da consulta. Use GT ou GTE para especificar o intervalo. GT indica valores maiores que o valor especificado. GTE indica valores maiores ou iguais ao valor especificado. |
|
To |
Valor final da consulta. Use LT ou LTE para especificar o intervalo. LT indica valores menores que o valor especificado. LTE indica valores menores ou iguais ao valor especificado. |
|
IncludeLower |
Indica se o valor do parâmetro From deve ser incluído na resposta. Este parâmetro é do tipo BOOLEAN. |
|
IncludeUpper |
Indica se o valor do parâmetro To deve ser incluído na resposta. Este parâmetro é do tipo BOOLEAN. |
|
Sort |
Método de ordenação. Para mais informações, consulte Realizar ordenação e paginação. |
|
ColumnsToGet |
Define se todas as colunas de cada linha correspondente devem ser retornadas. Especifique os parâmetros ReturnAll e Columns. Por padrão, ReturnAll é false e nem todas as colunas são retornadas. Nesse caso, use Columns para especificar as colunas desejadas. Sem a definição de Columns, apenas as colunas de chave primária são retornadas. Se ReturnAll for true, todas as colunas serão retornadas. |
Código de exemplo
O exemplo a seguir consulta linhas com valor de Col_Long maior que 3. O Tablestore ordena os resultados com base na coluna Col_Long em ordem decrescente.
/**
* Query the rows in which the value of the Col_Long column is greater than 3 in a table. Tablestore sorts the query results based on the value of the Col_Long column in descending order.
*/
func RangeQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
searchRequest := &tablestore.SearchRequest{}
searchRequest.SetTableName(tableName)
searchRequest.SetIndexName(indexName)
searchQuery := search.NewSearchQuery()
rangeQuery := &search.RangeQuery{} // Set the query type to RangeQuery.
rangeQuery.FieldName = "Col_Long" // Specify the name of the column that you want to query.
rangeQuery.GT(3) // Specify the range of the column value, which is greater than 3.
searchQuery.SetQuery(rangeQuery)
// Sort the query results based on the value of the Col_Long column in descending order.
searchQuery.SetSort(&search.Sort{
[]search.Sorter{
&search.FieldSort{
FieldName: "Col_Long",
Order: search.SortOrder_DESC.Enum(),
},
},
})
searchRequest.SetSearchQuery(searchQuery)
searchRequest.SetColumnsToGet(&tablestore.ColumnsToGet{
ReturnAll:true,
})
searchResponse, err := client.Search(searchRequest)
if err != nil {
fmt.Printf("%#v", err)
return
}
fmt.Println("IsAllSuccess: ", searchResponse.IsAllSuccess) // Check whether all rows that meet the query conditions are returned.
fmt.Println("RowCount: ", len(searchResponse.Rows))
for _, row := range searchResponse.Rows {
jsonBody, err := json.Marshal(row)
if err != nil {
panic(err)
}
fmt.Println("Row: ", string(jsonBody))
}
}
Perguntas frequentes
Referências
-
Índices de pesquisa oferecem os seguintes métodos de consulta: consulta de termo, consulta de termos, consulta match all, consulta match, consulta match phrase, consulta de prefixo, consulta de intervalo, consulta wildcard, consulta geográfica, consulta booleana, consulta de vetor KNN, consulta aninhada e consulta exists. Use esses métodos para consultar dados multidimensionais conforme as necessidades do seu negócio.
Ordene ou pagine as linhas correspondentes usando os recursos de ordenação e paginação. 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, dados do tipo especificado aparecem apenas uma vez nos resultados. Para mais informações, consulte Collapse (deduplicar).
Para analisar dados de uma tabela, use 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 contagem total de linhas. Para mais informações, consulte Agregação e Consulta SQL.
Para obter todas as linhas correspondentes sem ordenação, chame as operações ParallelScan e ComputeSplits para usar a varredura paralela. Para mais informações, consulte Realizar uma varredura paralela.