Elasticsearch Range Query Tutorial

Elasticsearch Range Query Tutorial

Elasticsearch es una herramienta de búsqueda y análisis de datos de código abierto muy potente, popular y eficiente. Especialmente cuando se trata de índices o búsquedas que implican múltiples campos con diferentes consultas de rango, Elasticsearch puede ayudarte a filtrar los datos exactos que estás buscando. En este tutorial, conocerás en profundidad cómo usar consultas de rango en Elasticsearch, que es una de las características más poderosas de esta herramienta.

📋 Aquí podrás encontrar✍
  1. ¿Qué es una consulta de rango?
    1. Rango numérico
    2. Rango de cadenas
  2. Combina consultas de rango con otros tipos de consultas
  3. Conclusión
  4. Preguntas frecuentes
    1. ¿Qué es Elasticsearch?
    2. ¿Cómo se utiliza una consulta de rango en Elasticsearch?
    3. ¿Puedo combinar consultas de rango con otros tipos de consultas?
    4. ¿Qué es una consulta de rango de cadena?
  5. Ejemplos de código

¿Qué es una consulta de rango?

En Elasticsearch, una consulta de rango se refiere a un filtro que permite buscar documentos dentro de un rango determinado de valores para uno o varios campos. Esto puede hacerse en dos formas: 'rango numérico' o 'rango de cadenas'. Por ejemplo, si quieres buscar documentos que tengan un campo 'edad' dentro del rango de 18 a 30 años, una consulta de rango sería lo que necesitas.

Rango numérico

Para buscar datos numéricos, puede especificarse los parámetros 'gte' (mayor o igual que) y 'lte' (menor o igual que) para definir un rango de valores. Por ejemplo, la consulta a continuación buscará todos los documentos que tengan un campo 'edad' entre 18 y 30 años:


{
"query": {
"range" : {
"age" : {
"gte" : 18,
"lte" : 30
}
}
}
}

La consulta 'range' es una estructura de alto nivel con el objetivo de filtrar documentos que contengan valores en un rango de bounds específico.

Rango de cadenas

Para buscar cadenas de texto, se utiliza la query 'regexp', ofertando filtros avanzados de expresiones regulares. La consulta a continuación buscará todos los documentos que contienen el patrón de string 'hello':


{
"query": {
"regexp" : {
"message" : {
"value" : "hello.*"
}
}
}
}

Combina consultas de rango con otros tipos de consultas

Es posible combinar consultas de rango dentro de la sección 'query' de otras búsquedas tipo 'match' o 'term'. Aquí un ejemplo:


{
"query": {
"bool": {
"must": [
{ "match": { "title": "Elasticsearch" }},
{ "range": { "publish_date": { "gte": "2015-01-01" }}}
]
}
}
}

Conclusión

En este tutorial, hemos aprendido cómo usar consultas de rango en Elasticsearch. Ahora eres capaz de crear consultas de rango en diferentes situaciones, combinando estas consultas con otros tipos de consultas, y buscar los datos que necesitas.

Preguntas frecuentes

¿Qué es Elasticsearch?

Elasticsearch es una herramienta de búsqueda y análisis de datos de código abierto muy potente, popular y eficiente.

¿Cómo se utiliza una consulta de rango en Elasticsearch?

Para utilizar una consulta de rango en Elasticsearch, se necesita especificar el campo relevante y los valores de rango que se están buscando. Puede hacerse en dos formas: 'rango numérico' o 'rango de cadenas'.

¿Puedo combinar consultas de rango con otros tipos de consultas?

Sí, es posible combinar consultas de rango dentro de la sección 'query' de otras búsquedas tipo 'match' o 'term' para afinar tus resultados de búsqueda.

¿Qué es una consulta de rango de cadena?

Una consulta de rango de cadena se utiliza para buscar cadenas de texto, como por ejemplo, un patrón de cadena dentro de los documentos.

Ejemplos de código

Aquí hay una consulta de rango combinada con una consulta de match utilizando la API de Elasticsearch para obtener documentos que tengan el título "Elasticsearch" y una fecha de publicación posterior al 2015-01-01:


GET /publicaciones/_search
{
"query": {
"bool": {
"must": [
{ "match": { "title": "Elasticsearch" }},
{ "range": { "publish_date": { "gte": "2015-01-01" }}}
]
}
}
}

Deja una respuesta

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

Subir