Apuntes ELK – Full Text y Term Queries

DSL (DOMAIN SPECIFIC LANGUAGE)

Es el lenguaje que se utiliza para realizar las consultas dentro de Elastic Search y donde Kibana utiliza para para realizar las visualizaciones que representan nuestros Dashboards.

Utiliza el formato JSON

Existen dos tipos:

  • Consultas Simples
  • Consultas Compuestas

 

Query DSL Características

Su comportamiento varía dependiendo del contexto:

Query (Context): Se calcula una puntuación (_score) evaluando la coincidencia de los resultados en esa consulta.

Filter (Context): Comprueba si un documento cumple las condiciones de la consulta o si debe o no realizar una puntuación.

Match All Query (Query que devuelve todos los resultados y no hace ningún tipo de filtrado)

GET /_search
                {“query”:{match_all”:{} } }

Match None Query (Query que no devuelve ningún resultado

GET /_search
                {“query”:{match_none”:{} } }

 

Full Text Queries (Aplicadas sobre campos que contengan texto)

  • match_query (Recoge las palabras de una cadena de texto)
  • match_phrase query (Analiza el conjunto de la frase)
  • match_phrase_prefix query (Busca un valor en más de un campo)
  • multi_ match query
  • common terms query
  • query_strings query (Búsqueda sencilla aplicando lógica – “OR”)
  • simple_query_strings query

Term Level Queries (Consulta sobre datos estructurados y parseados como números, fechas, texto, etc. Busca a nivel del contenido del campo)

  • term query (Interpreta todo como una única String, no interpreta por separado los valores a buscar)
  • terms query (Busca distintos valores en un único campo)
  • terms_set query
  • range query
  • exists query (Filtra los eventos en donde exista el campo declarado)
  • prefix query
  • wildcard query (Uso de expresiones regulares dentro de un campo)
  • regexp query
  • fuzzy query
  • type query

Compound Queries (Consultas compuestas. Envuelven otras consultas, ya sea para combinar sus resultados/scores, para modificar su comportamiento o para cambiar el contexto a filtrado.)

  • constant_score query (Hacer un filtrado por el Score)
  • bool query (Consulta Booleana)
  • dis_max query
  • function_score query (Cambiar el valor del Score)
  • boosting query


Joining Queries

La realización de JOINs (como en SQL) es muy pesado (recursos). Elasticsearch ofrece dos formas de realizarlo:

  • nested query (Cuando un campo tenga una estructura JSON en su interior)
  • has_child query (Dependencia de documento padre)
  • has_parent query          (Declaración de documento padre)


GEO Queries

  • Soporta geo_point (lat,lon) y geo_shape (polígonos)


Specialized Queries (Aquellas que no encajan en ningún otro grupo)

  • More_like_this query
  • Script query
  • Percolate query
  • Wrapper query
  •  

Ejemplos Full_text_y_Term_Queries

Ejemplos Otras_queries

 

Etiquetado , , , ,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *