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
ソフトウェア品質を数字で捉える技術。事業成長を支えるシステム品質の マネジメント
takuya542
2
15k
Vibe Codingの幻想を超えて-生成AIを現場で使えるようにするまでの泥臭い話.ai
fumiyakume
9
3.8k
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
13k
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
660
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
23
9.6k
The Niche of CDK Grant オブジェクトって何者?/the-niche-of-cdk-what-isgrant-object
hassaku63
1
610
Deep Dive into ~/.claude/projects
hiragram
14
14k
CDK引数設計道場100本ノック
badmintoncryer
2
480
MDN Web Docs に日本語翻訳でコントリビュートしたくなる
ohmori_yusuke
1
130
A full stack side project webapp all in Kotlin (KotlinConf 2025)
dankim
0
150
iOS 26にアップデートすると実機でのHot Reloadができない?
umigishiaoi
0
140
フロントエンドのパフォーマンスチューニング
koukimiura
5
2k
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
How to train your dragon (web standard)
notwaldorf
96
6.1k
How GitHub (no longer) Works
holman
314
140k
Visualization
eitanlees
146
16k
Documentation Writing (for coders)
carmenintech
72
4.9k
GitHub's CSS Performance
jonrohan
1031
460k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Side Projects
sachag
455
42k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
How to Ace a Technical Interview
jacobian
278
23k
Producing Creativity
orderedlist
PRO
346
40k
Become a Pro
speakerdeck
PRO
29
5.4k
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