Todos os produtos
Search
Central de documentação

Tablestore:Consulta exists

Última atualização: Jul 03, 2026

Uma consulta exists também é conhecida como consulta NULL ou consulta de valor NULL. Esse tipo de consulta verifica a existência de uma coluna em uma linha de dados esparsos. Por exemplo, consulte as linhas em que o valor da coluna address não está vazio.

Nota
  • Para verificar se uma coluna contém valores vazios, use ExistsQuery combinado com must_not_queries do BoolQuery.

  • O sistema considera que uma coluna não existe quando uma das condições a seguir é atendida. Neste exemplo, usa-se a coluna city.

    • O tipo da coluna city no índice de busca é básico, como keyword. Se uma linha na tabela de dados não possuir a coluna city, o índice de busca considerará que essa coluna não existe.

    • O tipo da coluna city no índice de busca é básico, como keyword. Caso o valor da coluna city seja um array vazio na tabela de dados ("city" = "[]"), o índice de busca tratará a coluna city como inexistente.

Pré-requisitos

Parâmetros

Parâmetro

Descrição

table_name

Nome da tabela de dados.

index_name

Nome do índice de busca.

field_name

Nome da coluna a ser consultada.

query_type

Tipo de consulta. Defina o tipo de consulta como QueryTypeConst::EXISTS_QUERY.

Nota

Não é possível consultar colunas aninhadas diretamente. Para consultar uma coluna aninhada, encapsule NestedQuery especificando o caminho da coluna aninhada e uma subconsulta. A subconsulta pode ser de qualquer tipo. Para mais informações, consulte Consulta aninhada.

Exemplos

Esta seção apresenta exemplos de execução de uma consulta exists.

Consultar linhas não vazias na coluna text

O código de exemplo a seguir demonstra como consultar linhas com valores não vazios na coluna text de uma tabela.

$request = array(
    'table_name' => 'php_sdk_test',
    'index_name' => 'php_sdk_test_search_index',
    'search_query' => array(
        'offset' => 0,
        'limit' => 2,
        'get_total_count' => true,
        'query' => array(
            'query_type' => QueryTypeConst::EXISTS_QUERY,
            'query' => array(
                'field_name' => 'text'
            )
        )
    ),
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
        'return_names' => array('keyword', 'long', 'array')
    )
);
$response = $otsClient->search($request);

Consultar linhas não vazias em uma subcoluna de uma coluna aninhada

O exemplo de código abaixo ilustra como consultar linhas com valores não vazios na subcoluna nested_long de uma coluna aninhada em uma tabela.

$request = array(
    'table_name' => 'php_sdk_test',
    'index_name' => 'php_sdk_test_search_index',
    'search_query' => array(
        'offset' => 0,
        'limit' => 2,
        'get_total_count' => true,
        'query' => array(
            'query_type' => QueryTypeConst::NESTED_QUERY,
            'query' => array(
                'path' => "nested",
                'query' => array(
                    'query_type' => QueryTypeConst::EXISTS_QUERY,
                    'query' => array(
                        'field_name' => 'nested.nested_long',
                    )
                ),
                'score_mode' => ScoreModeConst::SCORE_MODE_AVG
            )
        )
    ),
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
        'return_names' => array('nested')
    )
);
$response = $this->otsClient->search($request);

Perguntas frequentes

Referências