Está en la página 1de 31

Elastic Search

Uh ! Elastic Search

@marcossegovia
Motor de bsqueda basado en Apache Lucene

Vamos a escalar

Shay Banon liber la primera versin


de ES en 2010
?

Apache Lucene

Librera hecha en Java til para cualquier aplicacin que


requiera indexado y bsqueda a texto completo
Open source
Con la gente de Apache Foundation dando soporte
Funcionando desde el 1999
Cmo se est vendiendo?
Cmo se est vendiendo?
Cmo se est vendiendo?
Caractersticas

Bsquedas sobre Apache Lucene (Motor bsqueda Java)

Full Text Search

Distribuido

Multi-Entorno

API REST

JSON Request/Response
Asentemos la terminologa

Realtime Engine significa Propagacin

Cluster significa Coleccin de Nodes

Node significa un server que forma parte de UN Cluster

Index significa Coleccin de Documents bajo mismos o


distintos Types

Type significa Categora/Entidad/Clase


Document significa Unidad Bsica de Informacin
Bsicamente para que?

Indexar toda la informacin para que pueda ser


buscada de manera ptima.

Esta vez VOLCANDO la informacin, real e idntica.


S, ES soporta cualquier DataType
DataTypes

String Complex
Full text string Object
Keywords string Array
Numeric Nested
long
integer Geo
Geo Point
Date Geo Shape
string
Specialized
Boolean IPv4

Searching

Leaf query clause


Bsqueda de un valor en un campo

Compound query clause


Combinan Leaf queries u otras Compound queries
de manera lgica
Searching

Query Context
Como de bien matchea este Document en mi
query clause? query: {
}

Filter Context
Matchea este Document en mi query clause?
filter: {
}
Performance: Filtros usados frecuentemente sern cacheados por ElasticSearch
Searching

Full text queries


match estndar query

match_phrase como match, pero con mltiples palabras

match_phrase_prefix como match_phrase pero


intenta autocompletar la ltima
palabra
multi_match estndar query contra mltiples
campos
Searching

No slo full text queries


term level query joining query
term nested
range has_child
exists

compound query geo query
bool
constant_score

Ejemplo moln

POST /_search
Query Context
Leaf
Compound
Query
Query
Filter Context

Calcular un scoring sobre los


No afecta al scoring total
que cumplan
Referencia: https://www.elastic.co/guide/en/elasticsearch/reference/current/
query-filter-context.html
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


trminos o tokens hacia el ndice de ES.

El proceso lo aplica un analyzer especfico cuando:


Se indexan nuevos documentos

Se realiza una bsqueda

El analyzer a utilizar se puede especificar en la misma query o


en el mapping del ndice
Analyzers

Standard
Analyzer
Aggregations
Misma query, danos internet
Distribucin y Escalabilidad
Distribucin y Escalabilidad

Por defecto: 1 ndice se crea con 5 shards y 1 rplica


Por tanto, 10 shards.

El nmero de replicas se puede cambiar dinmicamente,


los shards no

ElasticSearch from the bottom up - EuroPython 2014


Lucene index - Elastic index 13:30
Planifica los shardings con previsin 16:17
Todo esto y ms en

Effective Elastic Search


https://gist.github.com/MarcosSegovia/c4f9585d0450791470485c68514acc05

Migracin de Sphinx a Elastic Search


https://gist.github.com/MarcosSegovia/edcc2b766eede8ddc2409e59f10e43c3

Directorio en Postman con mltiples ejemplos.


Por cada pregunta se crea un Order nuevo para maana

Si queris ms, saco el Postman