Agregaciones y búsquedas en elasticsearch

Elasticsearch

Sabemos que todas las agregaciones se ejecutan en el contexto de una búsqueda y además si queremos podemos utilizar la misma query de agregaciones para devolver una muestra de documentos utilizados para calcular dicha agregación.

Este comportamiento lo podemos modificar. Vamos a ver como.

Devolver los documentos de una query y sobre ellos aplicar una serie de agregaciones.

Esto devuelve una respuesta con:

  • documentos que cumplen la query
  • las agregaciones aplicadas a los documentos resultado de la query

Por ejemplo

GET .../_search
{
    "size" : 10,
    "query" : {
        ...
    },
    "aggs" : {
        "nombre_agg": {
            ...
        }
    }
}

Devolver los documentos de una query y aplicar un filtrado a los documentos antes de aplicar las agregaciones

Esto devuelve una respuesta con:

  • documentos que cumplen la query
  • las agregaciones aplicadas a los documentos filtrados sobre el resultado de la query

Por ejemplo

GET .../_search
{
   "size" : 10,
   "query":{
      ...
   },
   "aggs":{
      "filtro": {
         "filter": { 
            ...
         },
         "aggs": {
            "nombre_agg":{
               ...
            }
         }
      }
   }
}

Devolver los documentos de una query y aplicar a esos documentos un filtro, pero generar las agregaciones sobre los documentos devueltos por la query

Esto devuelve una respuesta con:

  • documentos filtrados que han cumplido la query
  • las agregaciones aplicadas sobre los documentos devueltos por la query

Por ejemplo

GET .../_search
{
    "size" : 10,
    "query": {
        ...
    },
    "post_filter": {    
        "term" : {
        ...
        }
    },
    "aggs" : {
        "nombre_agg": {
            ...
        }
    }
}
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s