introducción a elasticsearch
Post on 15-Apr-2017
69 Views
Preview:
TRANSCRIPT
Elastic SearchUh ! Elastic Search
@marcossegovia
Shay Banon liberó la primera versión de ES en 2010
Motor de búsqueda basado en Apache Lucene
Vamos a escalar
?
Apache Lucene
Librería hecha en Java útil para cualquier aplicación que requiera indexado y búsqueda a texto completoOpen sourceCon la gente de Apache Foundation dando soporteFuncionando desde el 1999
Cómo se está vendiendo?
Cómo se está vendiendo?
Cómo se está vendiendo?
Características
Búsquedas sobre Apache Lucene (Motor búsqueda Java)
Full Text Search
Distribuido
Multi-Entorno
API REST
JSON Request/Response
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
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
DataTypes
StringFull text stringKeywords string
Numericlonginteger
Date
Boolean
ComplexObjectArray
Nested
Geo
Specialized
… Geo PointGeo Shape
IPv4…
string…
Searching
Leaf query clauseBúsqueda de un valor en un campo
Compound query clause
Combinan Leaf queries u otras Compound queries de manera lógica
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”: { }
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
Searching
No sólo full text queries…term level query
geo querycompound query
joining querytermrange
boolconstant_score…
…
nested
……
existshas_child
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
CompoundQuery
LeafQuery
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
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
Analyzers
Standard Analyzer
AggregationsMisma query, danos internet
Distribución y Escalabilidad
Distribución y Escalabilidad
ElasticSearch from the bottom up - EuroPython 2014Lucene 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.
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.
Por cada pregunta se crea un Order nuevo para mañana
Si queréis más, saco el Postman
top related