So verwenden Sie eine verschachtelte Anfrage
Um eine verschachtelte Anfrage durchzuführen, müssen Sie einen Index haben, der eine verschachtelte Zuordnung enthält.
Die folgende Abfrage erstellt einen Index mit einer verschachtelten Feldzuordnung.
Verschachtelte Index setzen
"Mappings":
"Eigenschaften":
"Kunden":
"Typ": "verschachtelt"
Erstellen Sie anschließend ein Dokument mit verschachtelten Feldtypen und einigen Daten, wie in der folgenden Beispielabfrage gezeigt:
Legen Sie verschachtelt-Index/_doc/1 ein
"Kategorie": "Electronic_Purchases",
"Kunden": [
"First_Name": "Barbra",
"Last_name": "Walker"
,
"First_Name": "Michael",
"Last_name": "Jean"
,
"First_Name": "Hannah",
"Last_name": "Newsome"
]
Um eine verschachtelte Anfrage auszuführen, können wir ein Beispiel wie das unten gezeigte Beispiel ausführen:
Holen Sie sich verschachtelt-Index/_Search
"Anfrage":
"verschachtelt":
"Pfad": "Kunden",
"Anfrage":
"bool":
"muss": [
"passen":
"Kunden.First_Name ":" Hannah "
]
,
"Inner_hits": "Highlight": "Fields": "Kunden.Vorname":
Eine Beispielantwort aus der obigen Abfrage ist unten:
Die verschachtelte Abfrage verwendet Parameter als:
Multi-Level-verschachtelte Fragen
Sie können auch mehrstufige verschachtelte Abfragen haben, wie im Beispielindex gezeigt:
Put /Benutzer
"Mappings":
"Eigenschaften":
"Nutzername":
"Typ": "verschachtelt",
"Eigenschaften":
"Vorname":
"Text eingeben"
,
"Email":
"Typ": "verschachtelt",
"Eigenschaften":
"Anbieter":
"Text eingeben"
,
"Präfix":
"Text eingeben"
Fügen Sie ein paar Dokumente mit den Daten als:
Put/Benutzer/_doc/1
"Nutzername":
"First_Name": "David",
"Email": [
"Anbieter": "Google Mail.com ",
"Präfix": "David123@"
,
"Anbieter": "Hotmail.com ",
"Präfix": "Davidy123@"
]
Put/user/_doc/2
"Nutzername":
"First_Name": "Lucy",
"Email": [
"Anbieter": "Outlook.com ",
"Präfix": "LucyMail@"
,
"Anbieter": "Protonmail.com ",
"Präfix": "lucyp@"
]
Führen Sie die Anfrage als:
Get /Benutzer /_search
"Anfrage":
"verschachtelt":
"Pfad": "Benutzername",
"Anfrage":
"verschachtelt":
"Pfad": "Benutzername.Email",
"Anfrage":
"bool":
"muss": [
"passen":
"Nutzername.Email.Anbieter ":" Google Mail.com "
]
Ein Beispiel für die Antwort aus der resultierenden Abfrage ist unten:
Abschließend
In diesem Leitfaden wird erörtert.