A consulta de termos funciona de modo semelhante à consulta de termo único, mas permite especificar várias palavras-chave em uma única consulta para buscar linhas de dados correspondentes a pelo menos uma delas. Esse mecanismo equivale ao operador IN do SQL.
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 o tipo de consulta como TermsQuery. |
|
FieldName |
Nome do campo a ser consultado. |
|
Terms |
Palavras-chave usadas para corresponder aos valores do campo durante uma consulta de termos. O sistema retorna uma linha de dados se pelo menos uma das palavras-chave corresponder ao valor do campo. |
|
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 retornar dados específicos, defina Limit como 0. |
|
ColumnsToGet |
Define se todas as colunas de cada linha correspondente às condições da consulta devem ser retornadas. Configure os parâmetros ReturnAll e Columns. Por padrão, o parâmetro ReturnAll é definido como false, o que indica que nem todas as colunas são retornadas. Quando ReturnAll é false, use o parâmetro Columns para especificar quais colunas retornar. Se você não especificar o parâmetro Columns, apenas as colunas de chave primária serão retornadas. Se você definir o parâmetro ReturnAll como true, todas as colunas das linhas correspondentes serão retornadas. |
Exemplos
O código de exemplo a seguir demonstra como consultar linhas nas quais o valor da coluna Col_Keyword corresponde exatamente a "hangzhou" ou "tablestore".
/**
* Query the rows in which the value of the Col_Keyword column exactly matches "hangzhou" or "tablestore" in the table.
*/
func TermsQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
searchRequest := &tablestore.SearchRequest{}
searchRequest.SetTableName(tableName)
searchRequest.SetIndexName(indexName)
query := &search.TermsQuery{} // Set the query type to TermsQuery.
query.FieldName = "Col_Keyword" // Set the field used to match the query conditions.
terms := make([]interface{}, 0)
terms = append(terms, "hangzhou")
terms = append(terms, "tablestore")
query.Terms = terms // Set the keywords used in the query to match the column values.
searchQuery := search.NewSearchQuery()
searchQuery.SetQuery(query)
searchQuery.SetLimit(100)
searchRequest.SetSearchQuery(searchQuery)
// Return all columns in the rows that meet the query conditions.
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
-
Ao usar um índice de pesquisa para consultar dados, 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. Use esses métodos fornecidos pelo índice de pesquisa para consultar dados em múltiplas dimensões conforme as necessidades do seu negócio.
Ordene ou pagine as linhas que atendem às condições da consulta usando os recursos de classificação e paginação. Para mais informações, consulte Classificação e paginação.
Use o recurso de colapso (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 da consulta. Para mais informações, consulte Colapso (deduplicação).
Para analisar dados em uma tabela de dados, utilize o recurso de agregação da operação Search ou execute instruções SQL. Por exemplo, obtenha valores mínimos e máximos, somas e o número total de linhas. Para mais informações, consulte Agregação e Consulta SQL.
Para obter todas as linhas que atendem às condições da consulta sem precisar ordená-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Realizar uma varredura paralela.