Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introducción a ElasticSearch

Introducción a Elasticsearch

  • Login to see the comments

Introducción a ElasticSearch

  1. 1. Elastic Search Uh ! Elastic Search @marcossegovia
  2. 2. Shay Banon liberó la primera versión de ES en 2010 Motor de búsqueda basado en Apache Lucene Vamos a escalar
  3. 3. ? Apache Lucene Librería hecha en Java útil para cualquier aplicación que requiera indexado y búsqueda a texto completo Open source Con la gente de Apache Foundation dando soporte Funcionando desde el 1999
  4. 4. Cómo se está vendiendo?
  5. 5. Cómo se está vendiendo?
  6. 6. Cómo se está vendiendo?
  7. 7. Características Búsquedas sobre Apache Lucene (Motor búsqueda Java) Full Text Search Distribuido Multi-Entorno API REST JSON Request/Response
  8. 8. Asentemos la terminología Realtime Engine significa Propagación Cluster significa Colección de Nodes Node significa un server que forma parte de UN Cluster Index significa Colección de Documents bajo mismos o distintos Types Type significa Categoría/Entidad/Clase Document significa Unidad Básica de Información
  9. 9. Básicamente para que? Indexar toda la información para que pueda ser buscada de manera óptima. Esta vez VOLCANDO la información, real e idéntica. Sí, ES soporta cualquier DataType
  10. 10. DataTypes String Full text string Keywords string Numeric long integer Date Boolean Complex Object Array Nested Geo Specialized … Geo Point Geo Shape IPv4 … string …
  11. 11. Searching Leaf query clause Búsqueda de un valor en un campo Compound query clause Combinan Leaf queries u otras Compound queries de manera lógica
  12. 12. Searching Query Context Filter Context “¿Como de bien ‘matchea’ este Document en mi query clause?” “¿Matchea este Document en mi query clause?” Performance: Filtros usados frecuentemente serán cacheados por ElasticSearch “filter”: { } “query”: { }
  13. 13. Searching Full text queries match estándar query match_phrase como match, pero con múltiples palabras match_phrase_prefix como match_phrase pero intenta autocompletar la última palabra multi_match estándar query contra múltiples campos
  14. 14. Searching No sólo full text queries… term level query geo querycompound query joining query term range bool constant_score … nested … … exists has_child
  15. 15. Ejemplo molón Referencia: https://www.elastic.co/guide/en/elasticsearch/reference/current/ query-filter-context.html POST /_search Filter Context No afecta al scoring total Query Context Calculará un scoring sobre los que cumplan Compound
 Query Leaf
 Query
  16. 16. Pero… no os he dicho toda la verdad. Y la verdad es… QUE VOY A GANAR LA PORRA ! nah… la verdad es que existen los Analyzers
  17. 17. Analyzers El proceso de analysis es simplemente llevar el texto a términos o tokens hacia el índice de ES. El proceso lo aplica un analyzer específico cuando: Se indexan nuevos documentos Se realiza una búsqueda El analyzer a utilizar se puede especificar en la misma query o en el mapping del índice
  18. 18. Analyzers Standard Analyzer
  19. 19. Aggregations Misma query, danos internet
  20. 20. Distribución y Escalabilidad
  21. 21. Distribución y Escalabilidad ElasticSearch from the bottom up - EuroPython 2014 Lucene index - Elastic index 13:30 Planifica los shardings con previsión 16:17 Por defecto: 1 índice se crea con 5 shards y 1 réplica El número de replicas se puede cambiar dinámicamente, los shards no Por tanto, 10 shards.
  22. 22. Todo esto y más en… Effective Elastic Search https://gist.github.com/MarcosSegovia/c4f9585d0450791470485c68514acc05 Migración de Sphinx a Elastic Search https://gist.github.com/MarcosSegovia/edcc2b766eede8ddc2409e59f10e43c3 Directorio en Postman con múltiples ejemplos.

  23. 23. Por cada pregunta se crea un Order nuevo para mañana Si queréis más, saco el Postman

×