Este tutorial está diseñado para ElasticSearch versión 5.2. La versión 5 presenta una serie de cambios importantes en términos de consulta DSL y mapeo.
Si todavía está ejecutando la versión 2.x, eche un vistazo a la rama v2 de este repositorio .
He reunido varios ejemplos para mostrar las características y el gran poder de ElasticSearch. Gran parte de la información se basa en "ElasticSearch, la guía definitiva".
Descargue ElasticSearch y Kibana aquí y luego siga estos sencillos pasos:
./bin/elasticsearch
./bin/kibana
El ejercicio 1 es muy simple y el objetivo es dominar la interfaz RESTFul de ElasticSearch.
Temas:
Cargar ejercicio 1
En el ejercicio 2 indexaremos muchos datos. Para mejorar el rendimiento, lo haremos de forma masiva.
Estos datos contienen información del blog de Combell. He indexado la siguiente información:
Estos datos se utilizarán en los demás ejercicios.
Cargar los datos del blog de forma masiva
En el ejercicio 3, realizamos algunas consultas básicas utilizando el DSL de consulta ElasticSearch. El DSL está basado en JSON y las consultas son búsquedas de texto completo.
Aquí hay un par de búsquedas que estamos realizando:
Cargar ejercicio 3
En el ejercicio 4, nos centraremos en el análisis del texto completo y del lenguaje humano. Ignoraremos las capacidades de base de datos de ElasticSearch, le arrojaremos algo de texto y veremos cómo tokeniza los datos.
Dependiendo del analizador que utilice, ElasticSearch tokenizará y almacenará los datos de una manera diferente. No te preocupes, los datos originales permanecerán en la fuente del documento, es el índice invertido el que cambia.
Cargar ejercicio 4
El ejercicio 5 trata sobre el esquema de un índice. ElasticSearch se comercializa como sin esquema. En realidad, ElasticSearch adivinará el esquema por usted.
Le mostraré ejemplos en los que adivina con éxito y ejemplos en los que no.
Cargar ejercicio 5
Para evitar que ElasticSearch adivine mal el esquema, es una buena idea realizar un mapeo explícito. El ejercicio 6 configurará el mapeo correcto para nuestro ejemplo de blog y reinsertará los datos.
Los números enteros y las cadenas se definirán en consecuencia y la fecha tendrá el formato correcto.
El mapeo explícito se utilizará en el ejercicio 7.
Cargar ejercicio 6
Las 2 búsquedas del ejercicio 5 que fallaron ahora se ejecutarán nuevamente. Gracias al mapeo explícito, la salida será correcta.
Cargar ejercicio 7
En el ejercicio 8, definiremos otro mapeo más en el índice de nuestro blog. Esta asignación sólo trata el campo "título" como texto completo. El resto de las cadenas no serán analizadas ni tokenizadas. Se almacenarán "tal cual" .
Estos datos se utilizarán en el ejercicio 9.
Cargar ejercicio 8
En el ejercicio 9, le mostraré la diferencia entre búsquedas de texto completo mediante consultas y coincidencias de valores exactos mediante consultas en modo de filtro.
El mapeo que se realizó en el ejercicio 8 aseguró que ahora haya un campo de "palabra clave" en la propiedad del título. Esto significa que las consultas sobre "título" se tratan como búsquedas de texto completo y los filtros booleanos en el campo normal "título.palabra clave" se tratan como coincidencias de valores exactos.
En uno de los ejemplos, también le mostraré cómo combinar múltiples consultas y filtros.
Esto es lo que haremos en este ejercicio:
Cargar ejercicio 9
Volveremos a reasignar los datos. Esta vez, trataremos la propiedad "título" como un campo analizado. Por defecto se utiliza el analizador "estándar" . Como nuestros datos están tanto en holandés como en inglés, agregué 2 campos:
Esta es la versión final del mapeo. Los otros ejemplos utilizarán este mapeo y datos.
Cargar ejercicio 10
El ejercicio 11 trata sobre el análisis del texto, en función del idioma. El ejercicio 4 fue una pista hacia el análisis de datos. Ahora realizaremos búsquedas que dependen del análisis del lenguaje.
Ejercicio de carga 11
En el ejercicio 12, crearemos un nuevo índice de "ciudades" , que contiene todas las ciudades ubicadas en la provincia de West-Vlaanderen en Bélgica. El índice almacena el nombre de la ciudad y sus coordenadas geográficas.
El mapeo explícito y los datos se utilizarán en otros ejercicios.
Cargar ejercicio 12
En el ejercicio anterior, creamos un nuevo índice e indexamos algunos datos geográficos. En el ejercicio 13, realizaremos búsquedas con estos datos.
Se mostrarán 2 consultas:
Ejercicio de carga 13
En el ejercicio 14, cargaremos datos en otro índice más. Este índice se llama "autos" y contiene información sobre ventas de automóviles. Cada transacción realiza un seguimiento de la siguiente información:
Esta información se utilizará en el ejercicio 15.
Ejercicio de carga 14
Las agregaciones son una característica muy poderosa de ElasticSearch. Es básicamente como "agrupar por" en SQL, pero mucho más potente. Las agregaciones son la razón por la cual ElasticSearch es popular en la comunidad de big data y ciencia de datos.
Estas son las agregaciones que ejecutaremos en este ejercicio:
Cargar ejercicio 15