Todos os produtos
Search
Central de documentação

Tablestore:Consulta aninhada

Última atualização: Jul 03, 2026

Use uma consulta aninhada para recuperar dados nas linhas filhas de campos aninhados. Como não é possível consultar esses campos diretamente, especifique o caminho do campo aninhado e uma subconsulta em um objeto NestedQuery. A subconsulta aceita qualquer tipo de consulta.

Pré-requisitos

Parâmetros

Parâmetro

Descrição

table_name

Nome da tabela de dados.

index_name

Nome do índice de pesquisa.

path

Caminho do campo aninhado. Esse campo usa uma estrutura em árvore. Por exemplo, news.title especifica o subcampo title no campo aninhado news.

query

Consulta aplicada ao subcampo do campo aninhado. Aceita qualquer tipo de consulta.

score_mode

Valor usado para calcular a pontuação quando um campo contém vários valores.

Exemplos

O código de exemplo a seguir demonstra como consultar as linhas em que o valor da coluna nested.nested_keyword é 'sub':

$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,
            'score_mode' => ScoreModeConst::SCORE_MODE_AVG,
            'query' => array(
                'path' => "nested",
                'query' => array(
                    'query_type' => QueryTypeConst::TERM_QUERY,
                    'query' => array(
                        'field_name' => 'nested.nested_keyword',
                        'term' => 'sub'
                    )
                )
            )
        ),
        'sort' => array(
            array(
                'field_sort' => array(
                    'field_name' => 'nested.nested_long',
                    'order' => SortOrderConst::SORT_ORDER_DESC,
                    'nested_filter' => array(
                        'path' => "nested",
                        'query' => array(
                            'query_type' => QueryTypeConst::TERM_QUERY,
                            'query' => array(
                                'field_name' => 'nested.nested_keyword',
                                'term' => 'sub'
                            )
                        )
                    )
                )
            ),
        )
    ),
    'columns_to_get' => array(
        'return_type' => ColumnReturnTypeConst::RETURN_SPECIFIED,
        'return_names' => array('nested')
    )
);
$response = $otsClient->search($request);

FAQ

Referências