Use a consulta de termo para buscar valores de campo que correspondam exatamente à palavra-chave especificada. Esse tipo de consulta funciona de maneira semelhante à correspondência de strings. Ao consultar uma coluna TEXT, a linha atenderá às condições da consulta se pelo menos um dos tokens dessa linha corresponder exatamente à palavra-chave. A palavra-chave não passa por tokenização.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
Tabela de dados criada e populada. Para mais informações, consulte Criar uma tabela de dados e Gravar dados.
Índice de busca criado para a tabela de dados. Para mais informações, consulte Criar índices de busca.
Parâmetros
|
Parâmetro |
Descrição |
|
TableName |
Nome da tabela de dados. |
|
IndexName |
Nome do índice de busca. |
|
Query |
Tipo da consulta. Defina o tipo de consulta como TermQuery. |
|
FieldName |
Nome do campo a ser correspondido. |
|
Term |
Palavra-chave usada para corresponder aos valores de campo durante a consulta de termo. Essa palavra-chave não passa por tokenização. O sistema utiliza a palavra-chave inteira para corresponder aos valores de campo. Se o tipo do campo for TEXT, o Tablestore tokeniza a string e usa os tokens resultantes para fazer a correspondência com a palavra-chave. Uma linha atende às condições da consulta quando pelo menos um dos tokens dessa linha corresponde exatamente à palavra-chave. Por exemplo, se o valor de um campo do tipo TEXT em uma linha for "tablestore is cool", esse valor poderá ser tokenizado em "tablestore", "is" e "cool". A linha atenderá às condições da consulta se você especificar "tablestore", "is" ou "cool" como palavra-chave para corresponder ao valor do campo. |
|
ColumnsToGet |
Defina se todos os campos de cada linha que atende às condições da consulta devem ser retornados. Configure os parâmetros ReturnAll e Columns. Por padrão, o parâmetro ReturnAll é definido como false, indicando que nem todos os campos serão retornados. Quando ReturnAll é false, use o parâmetro Columns para especificar quais campos deseja retornar. Caso o parâmetro Columns não seja especificado, apenas os campos de chave primária serão retornados. Ao definir o parâmetro ReturnAll como true, todos os campos são retornados. |
|
GetTotalCount |
Defina se o número total de linhas que atendem às condições da consulta deve ser retornado. O valor padrão deste parâmetro é false, o que indica que a contagem total de linhas não será retornada. Definir este parâmetro como true compromete o desempenho da consulta. |
Exemplos
O código de exemplo a seguir demonstra como consultar linhas na tabela de dados em que o valor da coluna Col_Keyword corresponde exatamente a hangzhou:
/**
* Query the rows in which the value of the Col_Keyword field exactly matches "hangzhou" in a table.
*/
func TermQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
searchRequest := &tablestore.SearchRequest{}
searchRequest.SetTableName(tableName)
searchRequest.SetIndexName(indexName)
query := &search.TermQuery{} // Set the query type to TermQuery.
query.FieldName = "Col_Keyword" // Specify the name of the field that you want to query.
query.Term = "hangzhou" // Specify the keyword that is used to match field values.
searchQuery := search.NewSearchQuery()
searchQuery.SetQuery(query)
searchQuery.SetGetTotalCount(true)
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("TotalCount: ", searchResponse.TotalCount) // Display the total number of rows that meet the query conditions instead of the number of returned rows.
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 busca 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 curinga, consulta geográfica, consulta booleana, consulta vetorial KNN, consulta aninhada e consulta exists. Use esses métodos fornecidos pelo índice de busca para consultar dados de múltiplas dimensões conforme as necessidades do seu negócio.
Para classificar ou paginar as linhas que atendem às condições da consulta, utilize os recursos de classificação e paginação. Para mais informações, consulte Classificação e paginação.
Use o recurso de colapso (distinto) para agrupar o conjunto de resultados com base em uma coluna específica. Dessa forma, os 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, use o recurso de agregação da operação Search ou execute instruções SQL. Por exemplo, é possível obter 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 classificá-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Realizar uma varredura paralela.