Uma consulta de existência também é conhecida como consulta NULL ou consulta de valor NULL. Esse tipo de consulta verifica se uma coluna específica existe em uma linha de dados esparsos. Por exemplo, consulte as linhas nas quais a coluna address não está vazia.
Para executar uma consulta de existência em uma coluna Nested, use a consulta aninhada (nested query).
Para verificar se uma coluna contém valores vazios, combine ExistsQuery com mustNotQueries do BoolQuery.
-
O sistema considera que uma coluna não existe quando uma das condições abaixo é atendida. Neste exemplo, usa-se a coluna city.
Se o tipo da coluna city no índice de pesquisa for básico, como keyword, e a linha correspondente na tabela de dados não possuir essa coluna, o índice de pesquisa tratará a coluna city como inexistente.
Se o tipo da coluna city no índice de pesquisa for básico, como keyword, e o valor dessa coluna na tabela de dados for um array vazio ("city" = "[]"), o índice de pesquisa considerará que a coluna city não existe.
Pré-requisitos
Instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
Tabela de dados criada e preenchida. Para mais detalhes, consulte Criar uma tabela de dados e Gravar dados.
Índice de pesquisa criado para a tabela de dados. Consulte Criar índices de pesquisa para obter orientações adicionais.
Parâmetros
|
Parâmetro |
Descrição |
|
TableName |
Nome da tabela de dados. |
|
IndexName |
Nome do índice de pesquisa. |
|
Query |
Tipo da consulta. Defina este parâmetro como ExistsQuery. |
|
FieldName |
Nome da coluna a ser consultada. Especifique o nome da coluna que você deseja consultar. |
Exemplo
O código de exemplo a seguir demonstra como consultar linhas em que a coluna especificada não está vazia:
func ExitsQuery(client *tablestore.TableStoreClient, tableName string, indexName string) {
searchRequest := &tablestore.SearchRequest{}
searchRequest.SetTableName(tableName)
searchRequest.SetIndexName(indexName)
query := &search.ExitsQuery{} // Set the query type to ExitsQuery.
query.FieldName = "city" // Specify the name of the column that you want to query.
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) // Specify that the total number of rows that meet the query conditions instead of the number of returned rows is displayed.
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, os seguintes métodos estão disponíveis: 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 vetorial KNN, consulta aninhada e consulta de existência. 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 aos critérios de consulta por meio dos recursos de ordenação e paginação. Para mais informações, consulte Ordenação e Paginação.
Use o recurso de colapso (distinto) 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 detalhes, 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. Isso permite obter valores mínimos e máximos, somas e contagem total de linhas, por exemplo. Consulte Agregação e Consulta SQL para obter orientações adicionais.
Para obter todas as linhas que atendem aos critérios de consulta sem ordenação, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Executar uma varredura paralela.