Tous les produits
Search
Centre de documentation

Tablestore:Requête imbriquée

Dernière mise à jour :Sep 22, 2026

Effectuez une requête imbriquée pour interroger les données des lignes enfants dans les champs imbriqués. Il est impossible d'interroger directement les champs imbriqués. Pour ce faire, spécifiez le chemin du champ imbriqué et une sous-requête dans un objet NestedQuery. La sous-requête peut être de n'importe quel type.

Prérequis

Paramètres

Paramètre

Description

table_name

Nom de la table de données.

index_name

Nom de l'index de recherche.

path

Chemin du champ imbriqué. Ce champ utilise une structure arborescente. Par exemple, news.title désigne le sous-champ title du champ imbriqué news.

query

Requête appliquée au sous-champ du champ imbriqué. Elle peut être de n'importe quel type.

score_mode

Valeur utilisée pour calculer le score lorsque le champ contient plusieurs valeurs.

Exemples

L'exemple de code suivant montre comment interroger les lignes dont la valeur de la colonne nested.nested_keyword est '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

Références

  • Lorsque vous utilisez un index de recherche pour interroger des données, vous pouvez recourir aux méthodes suivantes : requête term, requête terms, requête match all, requête match, requête match phrase, requête prefix, requête range, requête wildcard, requête Boolean, requête geo, requête imbriquée et requête exists. Utilisez différentes méthodes pour interroger les données selon plusieurs dimensions, en fonction de vos besoins métier.

    Pour trier ou paginer les lignes correspondant aux conditions de la requête, utilisez la fonctionnalité de tri et de pagination. Pour plus d'informations, consultez la rubrique Tri et pagination.

    Pour regrouper l'ensemble des résultats selon une colonne spécifique, utilisez la fonctionnalité de regroupement (distinct). Les données du type spécifié n'apparaissent alors qu'une seule fois dans les résultats. Pour plus d'informations, consultez la rubrique Regroupement (distinct).

  • Pour analyser les données d'une table, par exemple pour obtenir les valeurs extrêmes, la somme ou le nombre total de lignes, effectuez des opérations d'agrégation ou exécutez des instructions SQL. Pour plus d'informations, consultez les rubriques Agrégation et Requête SQL.

  • Pour obtenir rapidement toutes les lignes répondant aux conditions de la requête sans tri, appelez les opérations ParallelScan et ComputeSplits afin d'utiliser la fonctionnalité d'analyse parallèle. Pour plus d'informations, consultez la rubrique Analyse parallèle.