A consulta Exists 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 em que o valor da coluna address não está vazio.
Para executar uma consulta Exists em uma coluna Nested, use a consulta aninhada (nested query).
Para verificar se uma coluna contém valores vazios, use ExistsQuery combinado 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 busca for básico (como keyword) e a linha correspondente na tabela de dados não possuir essa coluna, o índice de busca considerará que ela não existe.
Se o tipo da coluna city no índice de busca for básico (como keyword) e o valor dessa coluna na tabela de dados for um array vazio ("city" = "[]"), o índice de busca tratará a coluna city como inexistente.
Pré-requisitos
Inicialize uma instância OTSClient. Para mais informações, consulte Inicializar uma instância OTSClient.
Crie uma tabela de dados e grave dados nela. Para mais detalhes, veja Criar tabelas de dados e Gravar dados.
Crie um índice de busca para a tabela de dados. Consulte Criar um índice de busca para obter mais informações.
Parâmetros
|
Parâmetro |
Descrição |
|
fieldName |
Nome do campo a consultar. |
|
query |
Tipo da consulta. Defina este parâmetro como |
|
getTotalCount |
Indica se o sistema deve retornar o número total de linhas correspondentes aos critérios da consulta. Valor padrão: false. Definir este parâmetro como true reduz o desempenho da consulta. |
|
tableName |
Nome da tabela de dados. |
|
indexName |
Nome do índice de busca. |
|
columnsToGet |
Colunas a retornar para cada linha correspondente.
|
Exemplos
O exemplo a seguir consulta as linhas em que a coluna pic_des não está vazia.
client.search({
tableName: TABLE_NAME,
indexName: INDEX_NAME,
searchQuery: {
offset: 0,
limit: 10, // Set limit to 0 to return only the row count without data.
query: {
queryType: TableStore.QueryType.EXISTS_QUERY,
query: {
fieldName: "pic_des"
},
},
getTotalCount: true // Set to true to return the total number of matching rows. Default value: false.
},
columnToGet: { // RETURN_SPECIFIED: specified columns; RETURN_ALL: all columns; RETURN_ALL_FROM_INDEX: all columns in the search index; RETURN_NONE: primary key columns only.
returnType: TableStore.ColumnReturnType.RETURN_SPECIFIED,
returnNames: ["Col_1", "Col_2", "Col_3"]
}
}, function (err, data) {
if (err) {
console.log('error:', err);
return;
}
console.log('success:', JSON.stringify(data, null, 2));
});
Perguntas frequentes
Referências
-
Os índices de busca suportam os seguintes tipos 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 booleana, consulta geográfica, consulta aninhada, consulta vetorial e consulta Exists. Selecione o tipo adequado às necessidades do seu negócio para recuperar os dados.
Para ordenar ou paginar as linhas correspondentes aos critérios da consulta, utilize o recurso de ordenação e paginação. Para mais informações, consulte Ordenação e paginação.
Para agrupar o conjunto de resultados com base em uma coluna específica, use o recurso de colapso (distinct). Assim, os dados do tipo especificado aparecerão apenas uma vez nos resultados da consulta. Para mais detalhes, veja Colapso (distinct).
Para analisar dados em uma tabela (como obter valores extremos, soma e número total de linhas), execute operações de agregação ou instruções SQL. Consulte Agregação e Consulta SQL para obter mais informações.
Para obter rapidamente todas as linhas correspondentes aos critérios da consulta sem ordenação, chame as operações ParallelScan e ComputeSplits para utilizar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.