Conceptos básicos para usar Elasticsearch
Lo que aprenderás sobre Elasticsearch
¿Qué es Elasticsearch?
Poner a correr Elasticsearch
Indexación de datos
Índices y documentos
Verbos HTTP
Mapeo de datos
Puntaje
Consultas
Tipos de cláusulas
Consultas booleanas
Consultas compuestas
Construyendo una consulta compuesta
Consultas anidadas
Proyecto: unificación de datos
Consultas de rango y agregaciones
Proyecto: revisión final del directorio
Cierre
Notas finales y cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Las consultas compuestas en Elastic Search permiten modelar situaciones complejas del mundo real al combinar varias condiciones en una única búsqueda. En estas consultas, se pueden integrar operadores lógicos como "y" (AND) y "o" (OR) para verificar múltiples valores al mismo tiempo. Comprender y utilizar estas consultas es fundamental para optimizar búsquedas más sofisticadas y precisas en grandes volúmenes de datos.
Para realizar una consulta compuesta, se utilizan las consultas booleanas, que funcionan como un envoltorio para incluir otras consultas dentro de ella. Por ejemplo, se puede crear una consulta que responda a las siguientes condiciones:
Todo esto se representa en Elastic Search de manera clara y estructurada, permitiendo un análisis eficiente de los datos.
Esta consulta comprueba si el estado de los pedidos es "activo" o "pendiente". Se implementa de la siguiente manera:
{
"bool": {
"should": [
{ "term": { "estado": "activo" } },
{ "term": { "estado": "pendiente" } }
]
}
}
Se utiliza otra consulta booleana para verificar que el usuario de la última modificación tenga un correo que contenga "mail" o "vendor.com". Esto se representa como:
{
"bool": {
"should": [
{ "match": { "usuario": "mail" } },
{ "match": { "usuario": "vendor.com" } }
]
}
}
Finalmente, se utiliza un término exacto (term) para buscar pedidos que en la última hora sean igual a cero:
{
"term": { "pedidos_ultima_hora": 0 }
}
La consulta final en Elastic Search se une bajo una estructura común, comenzando con un bloque query
seguido de bool
, que contiene must
para ser lógico "y". A continuación se detalla la estructura final de la consulta:
{
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{ "term": { "estado": "activo" } },
{ "term": { "estado": "pendiente" } }
]
}
},
{
"bool": {
"should": [
{ "match": { "usuario": "mail" } },
{ "match": { "usuario": "vendor.com" } }
]
}
},
{
"term": { "pedidos_ultima_hora": 0 }
}
]
}
}
}
Este código integra todos los criterios mencionados, permitiendo que Elastic Search realice búsquedas inmediatas y sofisticadas, basadas en condiciones múltiples. ¡No olvides practicar para dominar estas consultas y optimizar tus búsquedas en proyectos futuros!
Aportes 6
Preguntas 2
Para mi es todo un mundo nuevo, debo practicar y sacar provecho.
Me parece o es todo un tema esto de estructurar consultas en ES, no solo es tener la idea de los Y/O lógicos sino que hay que diseñar la query correctamente usando los must y should.
Vengo de trabajar más de dos años con solo SQL y me parece genial la forma de trabajar las condiciones con una base de datos NoSQL como ElasticSearch
Muy bien explicado el tema.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?