Cómo usar una consulta anidada
Para ejecutar una consulta anidada, debe tener un índice que incluya un mapeo anidado.
La siguiente consulta crea un índice con un mapeo de campo anidado.
Poner el índice anidado
"Mapeos":
"propiedades":
"clientes":
"tipo": "anidado"
A continuación, cree un documento que contenga tipos de campo anidados y algunos datos como se muestra en la consulta de muestra a continuación:
Poner anidado-índice/_doc/1
"Categoría": "Electronic_Purchase",
"clientes": [
"First_Name": "Barbra",
"Last_Name": "Walker"
,
"First_Name": "Michael",
"Last_Name": "Jean"
,
"First_Name": "Hannah",
"Last_Name": "Newsome"
]
Para ejecutar una consulta anidada, podemos ejecutar un ejemplo como el que se muestra a continuación:
Obtenga anidada-índice/_Search
"consulta":
"anidado":
"Path": "Clientes",
"consulta":
"Bool":
"debe": [
"fósforo":
"clientes.First_Name ":" Hannah "
]
,
"inner_hits": "resaltar": "campos": "clientes.nombre de pila":
Una respuesta de ejemplo de la consulta anterior está a continuación:
La consulta anidada utiliza parámetros como:
Consultas anidadas de varios niveles
También puede tener consultas anidadas de nivel múltiple como se muestra en el índice de ejemplo:
Pon /usuarios
"Mapeos":
"propiedades":
"nombre de usuario":
"tipo": "anidado",
"propiedades":
"nombre de pila":
"teclee el texto"
,
"correo electrónico":
"tipo": "anidado",
"propiedades":
"proveedor":
"teclee el texto"
,
"Prefijo":
"teclee el texto"
Agregue algunos documentos con los datos como:
Poner/usuarios/_doc/1
"nombre de usuario":
"First_Name": "David",
"correo electrónico": [
"Proveedor": "Gmail.com ",
"Prefijo": "David123@"
,
"Proveedor": "Hotmail.com ",
"Prefijo": "Davidy123@"
]
Poner/usuarios/_doc/2
"nombre de usuario":
"First_Name": "Lucy",
"correo electrónico": [
"Proveedor": "Outlook.com ",
"Prefijo": "LucyMail@"
,
"Proveedor": "Protonmail.com ",
"Prefijo": "Lucyp@"
]
Para realizar una consulta anidada de varios niveles, ejecute la solicitud como:
Get /users /_Search
"consulta":
"anidado":
"Path": "Nombre de usuario",
"consulta":
"anidado":
"Path": "Nombre de usuario.correo electrónico",
"consulta":
"Bool":
"debe": [
"fósforo":
"nombre de usuario.correo electrónico.proveedor ":" Gmail.com "
]
Un ejemplo de la respuesta de la consulta resultante está a continuación:
Para concluir
Esta guía discute cómo ejecutar consultas anidadas anidadas y de varios niveles en Elasticsearch.