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 101
Search
John Beynon
November 27, 2012
Programming
3
3.5k
ElasticSearch 101
My ElasticSearch 101 presentation to the Surrey Ruby User Group, Nov 27th 2012.
John Beynon
November 27, 2012
Tweet
Share
More Decks by John Beynon
See All by John Beynon
Heroku - Why, What and How
johnbeynon
2
3.8k
Other Decks in Programming
See All in Programming
CSC307 Lecture 08
javiergs
PRO
0
670
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
組織で育むオブザーバビリティ
ryota_hnk
0
170
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6k
Fluid Templating in TYPO3 14
s2b
0
130
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
380
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
170
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
110
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
230
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
610
Featured
See All Featured
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
Between Models and Reality
mayunak
1
190
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.5k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
64
Prompt Engineering for Job Search
mfonobong
0
160
Google's AI Overviews - The New Search
badams
0
900
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
99
Game over? The fight for quality and originality in the time of robots
wayneb77
1
110
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Transcript
ElasticSearch 101 Wednesday, 28 November 12
It’s for... Wednesday, 28 November 12
You know, Search Wednesday, 28 November 12
based on Apache Lucene Wednesday, 28 November 12
JAVA :( Wednesday, 28 November 12
like MongoDB Wednesday, 28 November 12
HTTP + JSON Wednesday, 28 November 12
Document based Wednesday, 28 November 12
Schema Free Wednesday, 28 November 12
$ curl -XPUT http://localhost:9200/twitter/user/kimchy -d '{ "name" : "Shay Banon"
}' $ curl -XPUT http://localhost:9200/twitter/tweet/1 -d '{ "user": "kimchy", "post_date": "2009-11-15T13:12:00", "message": "Trying out elasticsearch, so far so good?" }' $ curl -XPUT http://localhost:9200/twitter/tweet/2 -d '{ "user": "kimchy", "post_date": "2009-11-15T14:12:12", "message": "You know, for Search" }' Wednesday, 28 November 12
Demo Wednesday, 28 November 12
Auto Detects data types Wednesday, 28 November 12
Mappings Wednesday, 28 November 12
$ curl -XPUT http://localhost:9200/twitter $ curl -XPUT http://localhost:9200/twitter/user/_mapping -d '{
"user" : { "properties" : { "name" : { "type" : "string" } } } }' Wednesday, 28 November 12
{ "tweet" : { "properties" : { "user" : {"type"
: "string", "index" : "not_analyzed"}, "message" : {"type" : "string", "null_value" : "na"}, "postDate" : {"type" : "date"}, "priority" : {"type" : "integer"}, "rank" : {"type" : "float"} } } } Wednesday, 28 November 12
getting data out Wednesday, 28 November 12
$ curl -XGET http://localhost:9200/twitter/tweet/ _search?q=user:kimchy $ curl -XGET http://localhost:9200/twitter/tweet/_search -d
'{ "query" : { "term" : { "user": "kimchy" } } }' $ curl -XGET http://localhost:9200/twitter/_search? pretty=true -d '{ "query" : { "range" : { "post_date" : { "from" : "2009-11-15T13:00:00", "to" : "2009-11-15T14:30:00" } } } }' Wednesday, 28 November 12
Multi Tenancy Wednesday, 28 November 12
$ curl -XPUT http://localhost:9200/elasticsearch/tweet/1 -d '{ "post_date": "2009-11-15T14:12:12", "message": "Zug
Zug", "tag": "warcraft" }' $ curl -XPUT http://localhost:9200/kimchy/tweet/1 -d '{ "post_date": "2009-11-15T14:12:12", "message": "Whatyouwant?", "tag": "warcraft" }' $ curl -XGET http://localhost:9200/kimchy,elasticsearch/ tweet/_search?q=tag:warcraft Wednesday, 28 November 12
Settings Wednesday, 28 November 12
$ curl -XPUT http://localhost:9200/elasticsearch/ -d '{ "settings" : { "number_of_shards"
: 2, "number_of_replicas" : 3 } }' Wednesday, 28 November 12
Distributed Wednesday, 28 November 12
Replicas & Shards Wednesday, 28 November 12
AUTOMATIC Wednesday, 28 November 12
Tools Wednesday, 28 November 12
Curl HTTPClient etc Wednesday, 28 November 12
ElasticSearch-Head https:/ /github.com/mobz/elasticsearch-head Wednesday, 28 November 12
DEMO Wednesday, 28 November 12
RDMS + ElasticSearch Wednesday, 28 November 12
Pre Process data Wednesday, 28 November 12
select " pt.code as pt_code, " pt.name as pt_name, "
array_agg(DISTINCT hlt.code) as high_level_term_codes, " array_agg(DISTINCT hlgt.code) as high_level_group_term_codes, " soc.code as soc_code, " lang.name as language, " lang.meddra_version as meddra_version " ... Wednesday, 28 November 12
{ "low_level_term" : { " " " “id” : “10049364_”
" "name" : "Bleeding lips", " "llt_code" : “10049364", " " " "soc_code” : “10017947", " "high_level_term_codes" : [ "123457", " " " " " "932323" " " " ], " " " ... } } Wednesday, 28 November 12
with Ruby? Wednesday, 28 November 12
Tire https:/ /github.com/karmi/tire Wednesday, 28 November 12
DEMO Wednesday, 28 November 12
With ActiveRecord? Wednesday, 28 November 12
class Article < ActiveRecord::Base " include Tire::Model::Search " include Tire::Model::Callbacks
end Wednesday, 28 November 12
DEMO Wednesday, 28 November 12
Resources http:/ /www.elasticsearch.org https:/ /github.com/karmi/tire Wednesday, 28 November 12