Come usare una query nidificata
Per eseguire una query nidificata, è necessario avere un indice che include una mappatura nidificata.
La seguente query crea un indice con una mappatura del campo nidificata.
Metti l'indice nidificato
"Mappings":
"proprietà":
"clienti":
"tipo": "nidificato"
Quindi, crea un documento contenente tipi di campo nidificati e alcuni dati come mostrato nella query di esempio di seguito:
Metti l'indice nidificato/_doc/1
"Categoria": "Electronic_Purchass",
"clienti": [
"First_name": "Barbra",
"Last_name": "Walker"
,
"First_name": "Michael",
"last_name": "Jean"
,
"First_name": "Hannah",
"last_name": "Newsome"
"
Per eseguire una query nidificata, possiamo eseguire un esempio come quello mostrato di seguito:
Ottieni nidificato-indice/_search
"query":
"nidificato":
"percorso": "clienti",
"query":
"bool":
"dovere": [
"incontro":
"clienti.first_name ":" Hannah "
"
,
"Inner_hits": "Highlight": "Fields": "Clienti.nome di battesimo":
Una risposta di esempio dalla query sopra è sotto:
La query nidificata utilizza i parametri come:
Domande nidificate a più livelli
Puoi anche avere query nidificate multilivello come mostrato nell'indice di esempio:
Put /utenti
"Mappings":
"proprietà":
"Nome utente":
"tipo": "nidificato",
"proprietà":
"nome di battesimo":
"tipo": "testo"
,
"e-mail":
"tipo": "nidificato",
"proprietà":
"Provider":
"tipo": "testo"
,
"prefisso":
"tipo": "testo"
Aggiungi alcuni documenti con i dati come:
Put/utenti/_doc/1
"nome utente":
"First_name": "David",
"e-mail": [
"Provider": "Gmail.com ",
"Prefisso": "David123@"
,
"Provider": "Hotmail.com ",
"Prefisso": "Davidy123@"
"
Put/utenti/_doc/2
"nome utente":
"First_name": "Lucy",
"e-mail": [
"Provider": "Outlook.com ",
"Prefisso": "LucyMail@"
,
"Provider": "Protonmail.com ",
"Prefisso": "Lucyp@"
"
Per eseguire una query nidificata a più livelli, eseguire la richiesta come:
Get /utenti /_search
"query":
"nidificato":
"Path": "Nome utente",
"query":
"nidificato":
"Path": "Nome utente.e-mail",
"query":
"bool":
"dovere": [
"incontro":
"nome utente.e-mail.Provider ":" Gmail.com "
"
Un esempio della risposta dalla query risultante è sotto:
In chiusura
Questa guida discute come eseguire domande nidificate nidificate e multilivello in ElasticSearch.