Comment utiliser une requête imbriquée
Pour exécuter une requête imbriquée, vous devez avoir un index qui comprend une cartographie imbriquée.
La requête suivante crée un index avec une cartographie de champ imbriquée.
Mettre des index imbriqués
"Mappings":
"propriétés":
"clients":
"Type": "imbriqué"
Ensuite, créez un document contenant des types de champs imbriqués et certaines données comme indiqué dans l'exemple de requête ci-dessous:
Posé Index niché / _doc / 1
"Catégorie": "Electronic_purchases",
"clients": [
"First_name": "Barbra",
"Last_name": "Walker"
,
"First_name": "Michael",
"Last_name": "Jean"
,
"First_name": "Hannah",
"Last_name": "Newsome"
]]
Pour exécuter une requête imbriquée, nous pouvons exécuter un exemple comme celui ci-dessous:
Obtenez un index niché / _Search
"mettre en doute":
"imbriqué":
"chemin": "clients",
"mettre en doute":
"bool":
"devoir": [
"correspondre":
"clients.First_name ":" Hannah "
]]
,
"inner_hits": "highlight": "fields": "Clients.prénom":
Un exemple de réponse de la requête ci-dessus est ci-dessous:
La requête imbriquée utilise des paramètres comme:
Requêtes imbriquées à plusieurs niveaux
Vous pouvez également avoir des requêtes imbriquées à plusieurs niveaux comme indiqué dans l'exemple d'index:
Mettre / utilisateurs
"Mappings":
"propriétés":
"nom d'utilisateur":
"Type": "imbriqué",
"propriétés":
"prénom":
"type": "texte"
,
"e-mail":
"Type": "imbriqué",
"propriétés":
"fournisseur":
"type": "texte"
,
"préfixe":
"type": "texte"
Ajoutez quelques documents avec les données comme:
Put / utilisateurs / _doc / 1
"nom d'utilisateur":
"First_name": "David",
"e-mail": [
"Fournisseur": "Gmail.com ",
"préfixe": "david123 @"
,
"Fournisseur": "Hotmail.com ",
"préfixe": "Davidy123 @"
]]
Mettre / utilisateurs / _doc / 2
"nom d'utilisateur":
"First_name": "Lucy",
"e-mail": [
"fournisseur": "Outlook.com ",
"Préfixe": "LucyMail @"
,
"Fournisseur": "ProtonMail.com ",
"préfixe": "Lucyp @"
]]
Pour effectuer une requête imbriquée à plusieurs niveaux, exécutez la demande comme:
Get / Users / _Search
"mettre en doute":
"imbriqué":
"chemin": "nom d'utilisateur",
"mettre en doute":
"imbriqué":
"Path": "Nom d'utilisateur.e-mail",
"mettre en doute":
"bool":
"devoir": [
"correspondre":
"nom d'utilisateur.e-mail.fournisseur ":" Gmail.com "
]]
Un exemple de la réponse de la requête résultante est ci-dessous:
De clôture
Ce guide explique comment exécuter des requêtes imbriquées imbriquées et à plusieurs niveaux dans Elasticsearch.