Consultas Compuestas en Elastic Search con Postman

Clase 11 de 16Curso de Introducción a Elasticsearch

Resumen

¿Cómo construir una consulta compuesta con Elastic Search?

Elastic Search es una herramienta poderosa cuando necesitamos realizar búsquedas complejas y detalladas. En esta guía, te mostraré cómo crear una consulta compuesta utilizando Elastic Search y Postman, manipulando varios elementos como consultas booleanas, términos y más.

¿Cómo configuramos nuestra consulta en Postman?

Para comenzar, abre Postman e inicia una nueva consulta. En este ejemplo, la búsqueda se realiza sobre el índice de "platos". Entonces, deberás ingresar platos_search y estructurar el cuerpo en formato JSON:

{
  "query": {
    "bool": {
      "must": [
        {
          "bool": {
            "should": [
              { "term": { "estado": "activo" } },
              { "term": { "estado": "pendiente" } }
            ]
          }
        },
        {
          "bool": {
            "should": [
              { "match": { "ultima_modificacion.usuario": "mail.com" } },
              { "match": { "ultima_modificacion.usuario": "vendor.com" } }
            ]
          }
        },
        {
          "term": { "pedidos_ultima_hora": 0 }
        }
      ]
    }
  }
}

¿Qué significan las estructuras dentro de JSON?

  1. Consulta booleana (bool): Es la consulta padre y actúa como contenedor principal para todas las sub-consultas. Permite combinar varias condiciones de búsqueda.

  2. Must: Dentro de la consulta booleana, el must representa una lista de condiciones que deben ser verdaderas. Aquí encapsulamos otras consultas booleanas y términos.

  3. Should: Dentro de una consulta booleana, should permite que el documento coincida si al menos una de las condiciones es verdadera. Permite flexibilidad en las condiciones de búsqueda.

  4. Term: Se utiliza para filtrar documentos en los que el campo tiene exactamente un valor específico. Este operador es ideal para buscar palabras clave.

  5. Match: Realiza una búsqueda de texto en un campo. Aquí, se busca en el campo ultima_modificacion.usuario comprobar si contiene 'mail.com' o 'vendor.com'.

¿Cuál es el rol de minimum_should_match?

En muchas consultas, se utiliza el parámetro minimum_should_match para definir cuántas cláusulas dentro de should deben cumplirse para que un documento sea considerado coincidente. Sin embargo, en consultas como la anterior descrita, el valor por defecto es 1. Esto significa que al menos una cláusula debe coincidir.

Ejemplos de verificación de resultados

Una vez que hayas configurado tu consulta y enviado la petición en Postman, deberías comprobar que el resultado cumpla con las condiciones:

  • Estado del plato: Debes verificar que el plato esté en estado activo o pendiente.
  • Usuario de última modificación: Revisa que contenga 'mail.com' o 'vendor.com'.
  • Número de pedidos en la última hora: Confirma que sea igual a cero.

Este enfoque para construir consultas detalladas y complejas en Elastic Search te permitirá obtener resultados filtrados según tus necesidades precisas. No dudes en seguir explorando y experimentando con diferentes combinaciones para optimizar tus búsquedas al máximo. ¡Sigue aprendiendo y descubre todo el potencial de Elastic Search!