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
0
90
Elasticsearch
Elasticsearch introduction at the Mexico City JVM Group.
Domingo Suarez Torres
April 27, 2016
Tweet
Share
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
44
#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
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
200
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
120
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
1
170
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
8.2k
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
150
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
890
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
210
Ruby and LLM Ecosystem 2nd
koic
1
1.2k
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
150
PHPで TLSのプロトコルを実装してみる
higaki_program
0
360
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
440
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
760
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
770
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Test your architecture with Archunit
thirion
1
2.2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
320
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
480
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
180
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
300
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
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 }