Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Elasticsearch
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Domingo Suarez Torres
April 27, 2016
Programming
90
0
Share
Elasticsearch
Elasticsearch introduction at the Mexico City JVM Group.
Domingo Suarez Torres
April 27, 2016
More Decks by Domingo Suarez Torres
See All by Domingo Suarez Torres
Orquestación de contenedores con Kubernetes SGNext
domix
0
120
JVM Reactive Programming
domix
0
46
#SGNext Massive storage in the Mexican banking industry
domix
0
62
Ratpack JVM_MX Meetup February 2016
domix
0
61
Other Decks in Programming
See All in Programming
Don't Prompt Harder, Structure Better
kitasuke
0
630
Feature Toggle は捨てやすく使おう
gennei
0
450
Swift Concurrency Type System
inamiy
0
390
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
140
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
250
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
440
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
230
AIエージェントで業務改善してみた
taku271
0
500
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
190
Strategy for Finding a Problem for OSS: With Real Examples
kibitan
0
140
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
270
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.5k
Featured
See All Featured
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
160
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
800
HDC tutorial
michielstock
1
610
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Context Engineering - Making Every Token Count
addyosmani
9
810
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Accessibility Awareness
sabderemane
0
94
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Transcript
Elasticsearch Mexico City JVM Group April 2016
!Gracias por estar aqui¡
¡El meetup con mas asistencia de la historia!
What is the topic tonight?
Elastic search?
NO
Elastic Search?
NO
ElasticSearch?
NO
@superserch?
NO
Elasticsearch
YES
Search
Do I have to elaborate why search is important?
A little history…
Lucene History • Douglass Read "Doug" Cutting wrote Lucene in
1999 • Doug also is the author of Hadoop • In Lucene other projects came to life • Mahout • Tika • Nutch
Lucene?
• Lucene is an open-source Java full-text search library which
makes it easy to add search functionality to an application or website.
Index
Query
Inverted index • Lucene creates a data structure where it
keeps a list of where each word belongs.
Lucene-Based projects • Solr • Compass • Elasticsearch • Hibernate
search
Elasticsearch You Know, for Search.
Features • Real-Time Data. I (Domingo) say near Real-Time Data.
• Massively Distributed • High Availability • Full-Text Search • Document-Oriented • Schema-Free • Developer-Friendly, RESTful API • Extensible via plugins
Concepts • Cluster • Node • Index • Shard &
Replica • Type • Mapping • Document
How data is organized in Elasticsearch
Nodes & shards
Indexing documents
Sharding is crucial • Shard is a physical Lucene index
• # documents in a Lucent index is 2 billion docs. • When you create a index you have to declare the # shards, you can’t change later. Beware! • Don’t try to over-sharding your index! Beware!
Distributed indexing
URL http://localhost:9200/{index}/{type}/{document_id}
HTTPie for the samples
Creating an index $ http put :9200/my_index/ settings:='{ "index" :
{ "number_of_shards" : 3, "number_of_replicas" : 0 } }' PUT /my_index/ HTTP/1.1 Accept: application/json Accept-Encoding: gzip, deflate Connection: keep-alive Content-Length: 73 Content-Type: application/json Host: localhost:9200 User-Agent: HTTPie/0.9.3 { "settings": { "index": { "number_of_replicas": 0, "number_of_shards": 3 } } } HTTP/1.1 200 OK Content-Length: 21 Content-Type: application/json; charset=UTF-8 { "acknowledged": true }
Creating a type $ http put :9200/my_index/_mapping/my_document properties:='{ "user_name": {
"type": "string" } }' -v PUT /my_index/_mapping/my_document1 HTTP/1.1 Accept: application/json Content-Length: 49 Content-Type: application/json { "properties": { "user_name": { "type": "string" } } } HTTP/1.1 200 OK Content-Length: 21 Content-Type: application/json; charset=UTF-8 { "acknowledged": true }
Indexing $ http :9200/my_index/my_document user_name="Domingo Suarez" -v POST /my_index/my_document1 HTTP/1.1
Content-Length: 31 Content-Type: application/json { "user_name": "Domingo Suarez” } HTTP/1.1 201 Created Content-Length: 149 Content-Type: application/json; charset=UTF-8 { "_id": "AVRaEeBK3Lbw2oDzSIWN", "_index": "my_index", "_shards": { "failed": 0, "successful": 1, "total": 1 }, "_type": "my_document1", "_version": 1, "created": true }
Search $ http :9200/my_index/my_document/_search?q=user_name:Domingo HTTP/1.1 200 OK Content-Length: 657 Content-Type:
application/json; charset=UTF-8 { "_shards": { "failed": 0, "successful": 3, "total": 3 }, "hits": { "hits": [ { "_id": "AVRaEdPJ3Lbw2oDzSIWM", "_index": "my_index", "_score": 0.625, "_source": { "user_name": "Domingo Suarez" }, "_type": "my_document1" } ], "max_score": 0.625, "total": 1 }, "timed_out": false, "took": 5 }