Todos os produtos
Search
Central de documentação

Tablestore:Consulta exists

Última atualização: Sep 22, 2026

Uma consulta exists também é conhecida como consulta NULL ou consulta de valor nulo. Esse tipo de consulta é usado em dados esparsos para verificar se uma coluna existe em uma linha. Por exemplo, você pode consultar as linhas nas quais o valor da coluna address não está vazio.

Nota
  • Para verificar se uma coluna contém valores vazios, utilize ExistsQuery em conjunto com must_not_queries de BoolQuery.

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

    • O tipo da coluna city no índice de pesquisa é um tipo básico, como keyword. Se existir uma linha na tabela de dados em que a coluna city não está presente, o índice de pesquisa considera que a coluna city não existe.

    • O tipo da coluna city no índice de pesquisa é um tipo básico, como keyword. Se o valor da coluna city em uma linha da tabela de dados for um array vazio ("city" = "[]"), o índice de pesquisa considera que a coluna city não existe.

Pré-requisitos

Parâmetros

Parâmetro

Descrição

table_name

Nome da tabela de dados.

index_name

Nome do índice de pesquisa.

field_name

Nome da coluna a ser consultada.

query_type

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

Nota

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

Exemplos

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

Consultar linhas com valores não vazios na coluna text

O código de exemplo a seguir mostra 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 com valores não vazios em uma subcoluna de uma coluna nested

O código de exemplo a seguir mostra como consultar linhas com valores não vazios na subcoluna nested_long de uma coluna nested 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

  • Ao usar um índice de pesquisa para consultar dados, você pode utilizar os seguintes métodos de consulta: term query, terms query, match all query, match query, match phrase query, prefix query, range query, wildcard query, Boolean query, geo query, nested query e exists query. Combine diferentes métodos de consulta para pesquisar dados em múltiplas dimensões de acordo com as necessidades do seu negócio.

    Para ordenar ou paginar as linhas que atendem às condições da consulta, utilize o recurso de ordenação e paginação. Para obter mais informações, consulte Sorting and paging.

    Para agrupar o conjunto de resultados com base em uma coluna específica, utilize o recurso de collapse (distinct). Dessa forma, dados do tipo especificado aparecem apenas uma vez nos resultados da consulta. Para obter mais informações, consulte Collapse (distinct).

  • Para analisar dados em uma tabela de dados — como obter valores extremos, soma e número total de linhas —, execute operações de agregação ou instruções SQL. Para obter mais informações, consulte Aggregation e SQL query.

  • Para obter rapidamente todas as linhas que atendem às condições da consulta sem a necessidade de ordená-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para obter mais informações, consulte Parallel scan.