Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

ELASTICSEARCH

No description
by

Enrique Hurtado Garcia

on 19 July 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of ELASTICSEARCH

Elasticsearch usa sus propios conceptos y aunque no es una base de datos relacional algunos pueden ser similares. Lo que en en una base de datos relacional es un esquema en ES es un índice, lo que en la primera es una tabla en ES es un tipo, continuando una fila en ES es un documento y finalmente una columna es una propiedad en ES.
La interfaz de elasticsearch permite que pueda ser utilizada por cualquier plataforma no solo Java, puede usarse desde Python, .NET, PHP o incluso desde un navegador con Javascript. Es persistente, es decir, que lo que indexemos en ella sobrevivirá a un reinicio del servidor.
ELASTICSEARCH
Es un proyecto de servidor de búsquedas iniciado por Shay Banon y publicado en Febrero de 2010.
Es un producto open source que podría definirse como un motor de búsqueda distribuido en tiempo real basado en Java.

QUE ES?
Datos en tiempo real
Distribuido
Alta disponibilidad
Multi-tenancy (Multitenencia)
Búsquedas full-text
Orientado a documentos
Gestión de conflictos
Sin esquemas
API Restful
Persistencia a nivel de operación
Open source
Características
ARQUITECTURA
Arquitectura diseñada pensando siempre en la distribución, para permitir escalar una solución de un nodo a cientos, ofreciendo alta disponibilidad, soportando grandes cantidades de datos y cortos tiempos de respuesta
ALMACENAMIENTO
Al utilizar ElasticSearch, una base de datos NoSQL de código abierto con una capacidad de consulta muy eficaz (ElasticSearch dispone de funciones avanzadas de indexación y almacenamiento en caché), se reduce el tiempo de búsqueda a milésimas de segundo incluso para consultas complejas. Por lo tanto, “big data” ofrece una mejor funcionalidad, además de ahorro en costes.
Analyzers
Los analizadores son un mecanismo que nos permite realizar un procesamiento sobre:

atributos de los documentos en el momento de indexación
cadenas de texto de los criterios de una consulta en el momento de realizar la búsqueda

Elasticsearch proporciona una serie de Analyzers, aunque nos permite customizarlos en caso de que no haya alguno que se ajuste a nuestras necesidades.
AUTO COMPLETADO
En este ejemplo se muestra la creación de una pantalla con un campo para buscar lugares por su nombre. A medida que se escriba en este campo aparecerá un menú desplegable con una lista de lugares cuyo nombre tiene alguna coincidencia con el texto introducido.
El Analizer customizado queda de la siguiente manera
Se define un Analyzer (con nombre ‘placeNameIndexAnalyzer’) que se compone de:

Tokenizer ‘whitespace‘: lo que hace es trocear el texto por los espacios que contenga. Se generarán tantos tokens como palabras.
Una lista de filtros, que se aplicarán sobre cada token generado por el Tokenizer en el orden que están definidos.

Los filtros usados consisten:

Trim: elimina posibles espacios al comiendo y final del token
Lowercase: convierte a minúsculas el token
Asciifolding: convierte los caracteres unicode que no estén entre los 127 primeros caracteres ASCII (del unicode ‘Basic Latin’) a sus equivalentes ASCII
spanish_stop: descarta tokens que se encuentren en un fichero. En este caso el fichero se llama ‘spanish-stopwords.txt’, y su contenido es el siguiente:
left_ngram: divide el token en trozos de un tamaño que se va incrementando, comenzando con trozos que van desde los 3 caracteres hasta los 12 caracteres (si los hubiera).
El siguiente paso será configurar en Elasticsearch el tipo de documento ‘Place’ para que el campo ‘name’ utilice este Analyzer cuando se indexen documentos de este tipo.
El último paso será crear la página y configurar el plugin Autocomplete de jQuery UI para que haga una llamada a Elasticsearch buscando lugares por nombre:
Full transcript