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
Domingo Suarez Torres
April 27, 2016
Programming
93
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
50
#SGNext Massive storage in the Mexican banking industry
domix
0
68
Ratpack JVM_MX Meetup February 2016
domix
0
64
Other Decks in Programming
See All in Programming
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
160
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
500
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
410
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
1
140
Building a Meta Ray-Ban display app
akkeylab
0
160
仕様駆動開発の消費期限
watany
20
8.5k
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
700
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
240
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
710
Flow は今どうなっているか
mizdra
PRO
0
600
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
390
SlackアプリとLambdaの 連携を構築した話
pawn_4_s
1
120
Featured
See All Featured
Design in an AI World
tapps
1
280
Code Reviewing Like a Champion
maltzj
528
40k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
New Earth Scene 8
popppiees
3
2.5k
Docker and Python
trallard
47
4.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
GraphQLとの向き合い方2022年版
quramy
50
15k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
First, design no harm
axbom
PRO
2
1.2k
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 }