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
Instância OTSClient inicializada. Para mais informações, consulte Inicializar uma instância OTSClient.
Tabela de dados criada e preenchida. Para mais informações, consulte Criar uma tabela de dados e Gravar dados.
Índice de pesquisa criado para a tabela de dados. Para mais informações, consulte Criar um índice de pesquisa.
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
-
Ao consultar dados com um índice de pesquisa, use os seguintes métodos: 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 e consulta exists. Combine diferentes métodos para consultar dados em várias dimensões conforme suas necessidades de negócio.
Para ordenar ou paginar as linhas que atendem aos critérios da consulta, use 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 collapse (distinct). Assim, os dados do tipo especificado aparecem apenas uma vez nos resultados da consulta. Para mais informações, consulte Collapse (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. Para mais informações, consulte Agregação e Consulta SQL.
Para obter rapidamente todas as linhas correspondentes aos critérios sem ordená-las, chame as operações ParallelScan e ComputeSplits para usar o recurso de varredura paralela. Para mais informações, consulte Varredura paralela.