Tous les produits
Search
Centre de documentation

Tablestore:Requête imbriquée

Dernière mise à jour :Aug 18, 2026

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

Important
  • Seuls les champs imbriqués peuvent faire l'objet de requêtes imbriquées.

  • Vous pouvez interroger des champs imbriqués et d'autres types de champs dans une seule demande. Pour plus d'informations sur le type de champ imbriqué, consultez la rubrique Nested data type.

Opération API

Pour exécuter une requête imbriquée, appelez l'opération Search ou ParallelScan et définissez le type de requête sur NestedQuery.

Paramètres

Paramètre

Description

path

Chemin du champ imbriqué. Ce chemin s'apparente à une structure arborescente. Par exemple, news.title désigne le sous-champ title du champ imbriqué nommé news.

query

Requête à exécuter sur le sous-champ du champ imbriqué. Cette requête peut être de n'importe quel type.

scoreMode

Valeur utilisée pour calculer le score lorsqu'un champ contient plusieurs valeurs.

getTotalCount

Indique si le nombre total de lignes correspondant aux conditions de requête doit être renvoyé. La valeur par défaut de ce paramètre est false, ce qui signifie que le nombre total de lignes correspondantes n'est pas renvoyé.

Si vous définissez ce paramètre sur true, les performances de la requête sont dégradées.

weight

Pondération à attribuer au champ interrogé afin de calculer le score de pertinence des mots-clés basé sur BM25. Ce paramètre est utilisé dans les scénarios de recherche en texte intégral. Plus la pondération est élevée, plus le score de pertinence des mots-clés basé sur BM25 pour le champ est important. La valeur de ce paramètre est un nombre à virgule flottante positif.

Ce paramètre n'affecte pas le nombre de lignes renvoyées. En revanche, il influence les scores de pertinence des mots-clés basés sur BM25 des résultats de la requête.

tableName

Nom de la table de données.

indexName

Nom de l'index de recherche.

columnsToGet

Indique si toutes les colonnes de chaque ligne correspondant aux conditions de requête doivent être renvoyées. Vous pouvez configurer les paramètres returnAll et columns pour ce paramètre.

La valeur par défaut du paramètre returnAll est false, ce qui signifie que toutes les colonnes ne sont pas renvoyées. Dans ce cas, utilisez le paramètre columns pour spécifier les colonnes à renvoyer. Si vous ne spécifiez pas les colonnes à renvoyer, seules les colonnes de clé primaire sont retournées.

Si vous définissez le paramètre returnAll sur true, toutes les colonnes sont renvoyées.

InnerHits

Paramètres des sous-champs du champ imbriqué.

  • sort : règle de tri appliquée aux lignes enfants du champ imbriqué.

  • offset : position de départ des lignes enfants à renvoyer lorsque le champ imbriqué comporte plusieurs lignes enfants.

  • limit : nombre maximal de lignes enfants à renvoyer lorsque le champ imbriqué comporte plusieurs lignes enfants. Valeur par défaut : 3.

  • highlight : paramètres de mise en surbrillance pour les sous-champs du champ imbriqué. Pour plus d'informations, consultez la rubrique Highlight.

Méthodes

Utilisez la console Tablestore ou les SDK Tablestore pour exécuter une requête imbriquée. Avant de commencer, assurez-vous d'avoir effectué les préparatifs suivants :

  • Un compte Alibaba Cloud ou un utilisateur RAM disposant des autorisations nécessaires pour effectuer des opérations sur Tablestore a été créé. Pour savoir comment accorder ces autorisations à un utilisateur RAM, consultez la rubrique Use a RAM policy to grant permissions to a RAM user.

    Si vous souhaitez utiliser les SDK Tablestore pour exécuter une requête imbriquée, créez une paire AccessKey pour votre compte Alibaba Cloud ou votre utilisateur RAM. Pour plus d'informations, consultez la rubrique Create an AccessKey pair.

    Avertissement

    La paire AccessKey d'un compte Alibaba Cloud dispose d'autorisations sur toutes les opérations API. Nous vous recommandons d'utiliser un utilisateur RAM pour appeler les opérations API ou effectuer les tâches d'exploitation et de maintenance courantes. Évitez d'intégrer en dur l'AccessKey ID et l'AccessKey Secret dans le code de votre projet, car cela pourrait entraîner la fuite de la paire AccessKey et compromettre la sécurité de toutes les ressources de votre compte.

  • Une table de données a été créée. Pour plus d'informations, consultez la rubrique Operations on a data table.

  • Un index de recherche a été créé pour la table de données. Pour plus d'informations, consultez la rubrique Create a search index.

  • Si vous souhaitez utiliser les SDK Tablestore pour exécuter une requête imbriquée, initialisez une instance OTSClient. Pour plus d'informations, consultez la rubrique Initialize an OTSClient instance.

Utiliser la console Tablestore

Lorsque vous exécutez une requête imbriquée via la console Tablestore, vous ne pouvez interroger que les données de champs imbriqués à un seul niveau.

  1. Accédez à l'onglet Index Management.

    1. Connectez-vous à la console Table Store.

    2. Dans la barre de navigation supérieure, sélectionnez un groupe de ressources et une région.

    3. Sur la page Overview, cliquez sur le nom de l'instance ou sur Instance Management dans la colonne Actions.

    4. Sous l'onglet Instance Details, dans l'onglet Data Table List, cliquez sur le nom de la table de données ou sur Index Management dans la colonne Actions.

  2. Sous l'onglet Index Management, repérez l'index de recherche cible et cliquez sur Search dans la colonne Actions.

  3. Dans la boîte de dialogue Search, interrogez les données.

    1. Par défaut, toutes les colonnes sont renvoyées. Pour ne renvoyer que certaines colonnes, désactivez l'option Retrieve All Columns et saisissez les noms des colonnes séparés par des virgules.

      Remarque

      Par défaut, Table Store renvoie les colonnes de clé primaire de la table de données.

    2. Sélectionnez un opérateur logique : And, Or ou Not.

      Si vous sélectionnez And, la requête renvoie les données qui satisfont à toutes les conditions spécifiées. Si vous sélectionnez Or, la requête renvoie les données qui satisfont à au moins une des conditions spécifiées. Si vous sélectionnez Not, la requête renvoie les données qui ne satisfont pas aux conditions spécifiées.

    3. Sélectionnez un champ de type imbriqué et cliquez sur Add.

    4. Sélectionnez un sous-champ, définissez le type de requête souhaité (par exemple TermQuery) et saisissez une valeur à rechercher.

    5. Par défaut, le tri est désactivé. Pour trier les résultats selon un champ spécifique, activez l'option Enable Sorting, ajoutez le champ de tri et configurez l'ordre de tri.

    6. Par défaut, l'agrégation est désactivée. Pour effectuer une agrégation statistique sur un champ spécifique, activez l'option Enable Aggregation, ajoutez le champ d'agrégation et configurez les paramètres d'agrégation.

  4. Cliquez sur OK.

    Les résultats de la requête s'affichent sous l'onglet Index Management.

Utiliser les SDK Tablestore

Utilisez un SDK pour interroger les données de champs de type imbriqué à un ou plusieurs niveaux. Lors de l'exécution d'une requête imbriquée, vous pouvez utiliser la fonctionnalité de mise en surbrillance pour mettre en évidence les mots-clés dans les résultats. Pour plus d'informations sur cette fonctionnalité, consultez la rubrique highlight.

Les SDK Tablestore suivants permettent d'exécuter une requête imbriquée : Tablestore SDK for Java, Tablestore SDK for Go, Tablestore SDK for Python, Tablestore SDK for Node.js, Tablestore SDK for .NET et Tablestore SDK for PHP. Cet exemple utilise le SDK Tablestore for Java.

Facturation

L'interrogation des données à l'aide d'un index de recherche consomme du débit de lecture. Pour plus d'informations, consultez la rubrique Search Index metering and billing.

FAQ

Références