Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ElasticSearch入門
Search
Jun Ohtani
August 19, 2013
Programming
61k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ElasticSearch入門
ElasticSearch
Jun Ohtani
August 19, 2013
More Decks by Jun Ohtani
See All by Jun Ohtani
Elastic Stackでマイクロサービス運用を 楽にするには? / Monitoring Microservices with Elastic Stack
johtani
5
3.1k
様々なメトリクスやログを集めてシステム解析 - Elastic Stackの入門と活用 - / Getting started Elastic Stack for logging/metrics
johtani
3
1.2k
え?SQLで入門?する ElasticsearchとElastic Stack / Getting started Elastic Stack with SQL
johtani
4
1.3k
Elastic Stack 入門 2018.09 / Getting started Elastic Stack 2018.09
johtani
3
3k
What's new in Elastic Stack 6.3
johtani
2
2.7k
Elastic Stackで始めるJavaアプリのパフォーマンス監視 / Intro Elastic Stack and Elastic APM Java
johtani
5
2.7k
様々なメトリクスやログを集めてシステム解析 - Elastic Stackの入門と活用 - / Intro Elastic Stack
johtani
0
210
Intro Elastic Stack at Telemetry WG
johtani
0
340
What's new in Elastic Stack 6.1?
johtani
0
830
Other Decks in Programming
See All in Programming
SODA - FACT BOOK(JP)
sodainc
1
40k
GraphQL の onError と Nullability のこれから
quramy
0
200
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
340
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
LLM 101
dalinaum
0
460
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
400
No More NoSuchMethodError
exoego
1
120
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
250
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.4k
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
120
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.8k
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
140
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
390
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Navigating Weather and Climate Data
rabernat
0
580
Skip the Path - Find Your Career Trail
mkilby
1
280
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.6k
Designing Experiences People Love
moore
143
24k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
Transcript
ElasticSearchೖ 2013/08/29 @johtani 138݄30༵ۚ
ࣗݾհ ࢯ໊ɿେ୩ɹ७ Twitterɿ@johtani lucene-gosenͷίϛολʔ Solrೖஶऀͷ1ਓ ϒϩάɿhttp://blog.johtani.info ॴଐɿגࣜձࣾγʔϚʔΫ 138݄30༵ۚ
ΞδΣϯμ ݕࡧΤϯδϯͬͯʁ సஔΠϯσοΫεɺN-gramɺܗଶૉͷ ElasticSearchͱʁ ΠϯσοΫεͷཧߏͱཧߏ ػೳ֓ཁ ࢀߟࢿྉͳͲ 138݄30༵ۚ
ݕࡧΤϯδϯͬͯʁ ʢElasticSearchͱؔͷͳ͍֓ཁతͳʣ 138݄30༵ۚ
શจݕࡧͬͯʁ શจݕࡧʢFull text searchʣͱɺίϯϐϡʔλʹ͓͍ͯɺෳͷจॻʢϑΝΠ ϧʣ͔ΒಛఆͷจࣈྻΛݕࡧ͢Δ͜ͱɻʮϑΝΠϧ໊ݕࡧʯʮ୯ҰϑΝΠϧ ͷจࣈྻݕࡧʯͱҟͳΓɺʮෳจॻʹ·͕ͨͬͯɺจॻʹؚ·ΕΔશจΛ ରͱͨ͠ݕࡧʯͱ͍͏ҙຯͰ༻͞ΕΔɻ ʢWikipediaΑΓʣ 138݄30༵ۚ
༻ޠ จॻʢυΩϡϝϯτʣ ɹݕࡧΤϯδϯʹอଘ͞ΕͨσʔλɻRDBͰͷϨίʔυʹ૬ ΫΤϦ ɹݕࡧ݅ɺݕࡧࣜ εΩʔϚ ɹRDBͷςʔϒϧʹ૬ ϑΟʔϧυ ɹRDBͷΧϥϜʹ૬ λʔϜʢTermʣ/τʔΫϯʢTokenʣ
ɹΠϯσοΫεͷΩʔʹͳΔ୯ޠʢจࣈྻʣ 138݄30༵ۚ
υΩϡϝϯτొͷྲྀΕ 1 2 ΧπΦαβΤͷఋ αβΤϫΧϝͷ࢞ υΩϡϝϯτͷొ 138݄30༵ۚ
υΩϡϝϯτొͷྲྀΕ 1 2 ΧπΦαβΤͷఋ αβΤϫΧϝͷ࢞ 1 2 ΧπΦ αβΤ
ͷ ͷ αβΤ ϫΧϝ ఋ ࢞ υΩϡϝϯτͷొ ୯ޠʹׂ 138݄30༵ۚ
υΩϡϝϯτొͷྲྀΕ 1 2 ΧπΦαβΤͷఋ αβΤϫΧϝͷ࢞ 1 2 ΧπΦ αβΤ
ͷ ͷ αβΤ ϫΧϝ ఋ ࢞ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 υΩϡϝϯτͷొ ୯ޠʹׂ ୯ޠ͔Βidͷྻ͕ Ҿ͚ΔΑ͏ʹ ʹసஔΠϯσοΫε 138݄30༵ۚ
ݕࡧͷྲྀΕ ΧπΦɹαβΤ ΧπΦ αβΤ 1 1 2 ͷ ࢞
ϫΧϝ 2 1 2 1 2 1 ఋ 2 ݕࡧจࣈೖྗ 138݄30༵ۚ
ݕࡧͷྲྀΕ ΧπΦɹαβΤ ΧπΦ αβΤ ΧπΦ αβΤ 1 1 2
ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 AND ݕࡧจࣈೖྗ ݕࡧจࣈͷύʔε ʴݕࡧΫΤϦԽ 138݄30༵ۚ
ݕࡧͷྲྀΕ ΧπΦɹαβΤ ΧπΦ αβΤ ΧπΦ αβΤ 1 1 2
ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 AND ݕࡧจࣈೖྗ ݕࡧจࣈͷύʔε ʴݕࡧΫΤϦԽ సஔΠϯσοΫεΛݕࡧ 138݄30༵ۚ
ݕࡧͷྲྀΕ ΧπΦɹαβΤ ΧπΦ αβΤ ΧπΦ αβΤ 1 1 2
ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 AND ݕࡧจࣈೖྗ ݕࡧจࣈͷύʔε ʴݕࡧΫΤϦԽ సஔΠϯσοΫεΛݕࡧ ˠANDݕࡧͳͷͰidͷ ྻͷANDΛͱΔ 138݄30༵ۚ
ݕࡧͷྲྀΕ ΧπΦɹαβΤ ΧπΦ αβΤ ΧπΦ αβΤ 1 1 2
ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 AND ݕࡧจࣈೖྗ ݕࡧจࣈͷύʔε ʴݕࡧΫΤϦԽ సஔΠϯσοΫεΛݕࡧ ˠANDݕࡧͳͷͰidͷ ྻͷANDΛͱΔ 138݄30༵ۚ
N-gramͱܗଶૉղੳ సஔΠϯσοΫεͷΩʔʢ୯ޠʣͷ࡞Γํ ຊޠ୯ޠͷΕ͕Θ͔Βͳ͍ͷͰసஔΠϯσοΫεͷΩʔओʹͭ͗ͷ2 ͭͷख๏Ͱ࡞Δ N-gram Nʢ1Ҏ্ͷࣈʣจࣈͣͭจষΛ۠Δ ܗଶૉղੳ ࣙॻͳͲΛ༻͍ͯҙຯͷ͋Δ୯ޠͰ۠Δ 138݄30༵ۚ
N-gram N͕2ͷ࣌ͷྫɿ ϝϦοτɿ ݕࡧ࿙Ε͕ͳ͍ σϝϦοτɿ ਫ਼͕ѱ͍→ʮΧπʯͰώοτͪ͠Ό͏ ΠϯσοΫε͕ංେԽ ޠװʢ୯ޠͷجຊܗͱ͔ʣͰݕࡧෆՄ ΧπΦαβΤͷఋ Χπ
πΦ Φ α αβ βΤ Τͷ ͷఋ 138݄30༵ۚ
ܗଶૉղੳ ܗଶૉղੳͷྫɿ ϝϦοτɿ ਫ਼͕Α͍ɿʮΧπʯͰݕࡧ→ʮΧπΦʯώοτ͠ͳ͍ ޠװʹΑΔݕࡧ͕ՄೳɿʮҿΈʯ→ʮҿΉʯ͕ݕࡧՄ σϝϦοτɿ ৽ޠʢະޠʣʹऑ͍→ࣙॻϕʔεͷ߹ʹࣙॻʹͳ͍୯ޠ͕Θ͔Βͳ͍ɻࣙॻ ߋ৽ޙΠϯσοΫε࠶࡞ ΧπΦαβΤͷఋ ΧπΦ
ͷ αβΤ ఋ 138݄30༵ۚ
υΩϡϝϯτͱϑΟʔϧυ υΩϡϝϯτෳͷϑΟʔϧυ͔Βߏ͞ΕΔ ϑΟʔϧυ୯ҐͰసஔΠϯσοΫεΛ࡞ ϑΟʔϧυ୯ҐͰݕࡧ͕Մೳʹ 138݄30༵ۚ
ElasticSearchͱʁ 138݄30༵ۚ
ຊͷཁ 138݄30༵ۚ
ࠓ͜Ε͚֮ͩ͑ͯؼͬ ͍ͯͩ͘͞ɻ 138݄30༵ۚ
ElasticSearch Amazon Web Servicesͷ αʔϏεͱؔ͋Γ·ͤΜ 138݄30༵ۚ
Ҏ্ 138݄30༵ۚ
ElasticSearchͱʁ ࢄܕRESTfulݕࡧˍղੳαʔό OSSʢApache Software License Version 2.0ʣ Apache LuceneΛίΞʹ࠾༻ʢ0.90.3Lucene 4.4.0ʹରԠʣ
ϚϧνςφϯτରԠ εΩʔϚϑϦʔˍυΩϡϝϯτࢦ ָ؍తഉଞ੍ޚ ͳͲͳͲ 138݄30༵ۚ
ElasticSearchͷ ΠϯσοΫεߏ ʢཧͱཧʣ 138݄30༵ۚ
ΠϯσοΫεߏʢཧʣ ʮΠϯσοΫε/λΠϓʢϚοϐϯάλΠϓʣ/υΩϡϝϯτʯͱ͍͏ߏ ※SolrʹλΠϓͱ͍͏֓೦͕ͳ͍ ElasticSearch indexɿbooks typeɿ novel typeɿ magazine doc1
doc2 doc3 indexɿdvds 138݄30༵ۚ
ΠϯσοΫεߏʢཧʣ υΩϡϝϯτ ɹɹɿRDBͷߦʹ૬͢Δ֓೦ɻ ɹɹɹߏ͕ݻఆͰͳ͍ʹεΩʔϚϑϦʔʢεΩʔϚΛఆٛ͢Δ͜ͱՄೳʣ λΠϓʢϚοϐϯάλΠϓʣ ɹɹɿRDBͷςʔϒϧʹ૬͢Δ֓೦ɻ ɹɹɹυΩϡϝϯτΛ·ͱΊΔίϯςφతͳͷɻ ɹɹɹλΠϓຖʹεΩʔϚʢESͰϚοϐϯάͱ͍͏ʣΛఆٛՄೳ ΠϯσοΫε ɹɹɿRDBͷσʔλϕʔεʹ૬͢Δ֓೦ɻ
ɹɹɹཧతͳϑΝΠϧʹอଘ͞ΕΔ୯Ґ ɹɹʢλΠϓ͋͘·Ͱ֓೦తͳͷͰɺ ɹɹɹཧతʹΠϯσοΫεͷ୯ҐͰอଘɻ※ཧߏޙड़ʣ 138݄30༵ۚ
ΠϯσοΫεߏʢཧʣ ElasticSearchͰཧߏ͕URLͱಉ͡ߏ υΩϡϝϯτͷొ curl -XPUT http://localhost:9200/books/novel/doc1 -d ‘{...}’ υΩϡϝϯτͷݕࡧʢΠϯσοΫε୯Ґʣ curl
-XGET http://localhost:9200/books/_search?q=... υΩϡϝϯτͷݕࡧʢλΠϓ୯Ґʣ curl -XGET http://localhost:9200/books/novel/_search?q=... υΩϡϝϯτͷIDʹΑΔऔಘʢυΩϡϝϯτ୯Ґʣ curl -XGET http://localhost:9200/books/novel/doc1 138݄30༵ۚ
ΠϯσοΫεߏʢཧʣ ෳͷΠϯσοΫεΛԣஅతʹݕࡧՄೳʢΧϯϚ۠ΓͰOKʣ curl -XGET http://localhost:9200/books,dvds/_search?q=... શΠϯσοΫεΛԣஅݕࡧ͢Δʹ curl -XGET http://localhost:9200/_search?q=... શΠϯσοΫεͷλΠϓࢦఆͰͷݕࡧՄೳ
curl -XGET http://localhost:9200/_all/magazine/_search?q=... 138݄30༵ۚ
ΠϯσοΫεߏʢཧʣ 138݄30༵ۚ
Ϋϥελɿelasticsearch ΠϯσοΫεߏʢཧʣ ΫϥελͱϊʔυɺΠϯσοΫεͱγϟʔυʢshardʣͷؔ ϊʔυɿElasticSearchϓϩηε̍ ϊʔυɿElasticSearchϓϩηε̎ booksɿprimary shard1 dvdsɿreplica shard1 dvdsɿreplica
shard2 booksɿreplica shard2 dvdsɿprimary shard1 booksɿreplica shard1 dvdsɿprimary shard2 booksɿprimary shard2 138݄30༵ۚ
ΠϯσοΫεߏʢཧʣ Ϋϥελnݸͷϊʔυ͔Βߏʢcluster.name͕ಉҰͳΒಉҰΫϥελʣ ΠϯσοΫεnݸͷγϟʔυ͔Βߏ͞Εɺγϟʔυ୯ҐͰϊʔυʹஔ͞Ε Δ͜ͱͰࢄՄೳ γϟʔυ୯ҐͰϨϓϦΧΛอ࣋Մೳ σϑΥϧτͰɺ5γϟʔυɺ1ϨϓϦΧʢ/1γϟʔυʣ ※γϟʔυΠϯσοΫε࡞࣌ʹͷΈࢦఆ͕ՄೳɻϨϓϦΧมߋՄೳ γϟʔυׂػೳ͕ͳ͍ͨΊɻSolrshard splittingػೳ͋Γʢ2013/04ʣ ※ಉҰϓϩηε্ʹಉҰγϟʔυͷϨϓϦΧͱϓϥΠϚϦ͕Βͳ͍Α͏ʹͳͬ
͍ͯΔ 138݄30༵ۚ
Ϋϥελཧ ΫϥελͷϊʔυՃͳͲͷϊʔυ୳ࡧσϑΥϧτZen Discovery ϚϧνΩϟετorϢχΩϟετʹΑΔϊʔυ୳ࡧ ϚϧνΩϟετɿϚϧνΩϟετΛར༻ͨ͠ϊʔυ୳ࡧ͓ΑͼΫϥελߏங ϢχΩϟετɿϗετϦετΛར༻ͨ͠Ϋϥελͷߏங ΫϥελىಈޙʹϚελʔϊʔυΛબग़ʢϚϧνϚελ͕Մೳʣ Ϛελϊʔυ͕ΫϥελશମͷোݕΛ࣮ࢪ http://www.elasticsearch.org/guide/reference/modules/discovery/zen/ ※ZooKeeperΛ༻͍ͨϊʔυ୳ࡧͷϓϥάΠϯ͋Δ
138݄30༵ۚ
ػೳ֓ཁ 138݄30༵ۚ
ػೳ֓ཁ ઃఆؔ࿈ ܕͷࣗಈܾఆɺಈతϚοϐϯάɺςϯϓϨʔτͳͲ σʔλߏ ೖΕࢠɺࢠߏɺ෦ߋ৽ ศརػೳ TTLɺεϩʔΫΤϦϩάɺεϩʔΠϯσΫγϯάϩάɺϓϥάΠϯ ݕࡧɺొػೳ Geoɺ PercoratorɺόϧΫΠϯαʔτ
138݄30༵ۚ
ઃఆؔ࿈ 138݄30༵ۚ
ઃఆؔ࿈ʢجຊʣ ΄ͱΜͲͯ͢ͷઃఆʹ͍ͭͯɺREST APIͰઃఆ͕Մೳ ઃఆϑΝΠϧͱͯ͠อଘՄೳ ֬ೝREST APIͰՄೳ Ϋϥελͷঢ়ଶͳͲ ΠϯσοΫεͷ࡞ɺআ curl -XPUT
'http://localhost:9200/twitter/' curl -XDELETE 'http://localhost:9200/twitter/' curl -XGET 'http://localhost:9200/_cluster/health?pretty=true' 138݄30༵ۚ
ઃఆؔ࿈ʢܕͷܾఆػೳʣ JSONΦϒδΣΫτ͔ΒࣗಈͰϑΟʔϧυͷܕΛਪଌͯ͠ొՄೳ ʢεΩʔϚϑϦʔͱݺΕΔॴҎʣ ɺɺจࣈྻͳͲΛਪଌͯ͠ϑΟʔϧυΛܾఆ ɿ numeric_detectionʹtrue/falseΛઃఆ ɿdynamic_date_formatsɿjoda-timeϥΠϒϥϦͷϑΥʔϚοτจ ࣈྻΛࢦఆʢෳࢦఆՄʣ 138݄30༵ۚ
ܕͷࣗಈܾఆͷҙ ҙ ͢ͰʹܕΛܾఆͨ͠ϑΟʔϧυʹҟͳΔܕͷσʔλΛ͍ΕΔͱΤϥʔʹͳͬ ͨΓɺΓࣺͯΒΕͨΓ Τϥʔྫɿ24ʢlongܕʣΛొޙɺ”hoge”ʢstringܕʣΛొ ignore_malformed͕trueͰઃఆ͞Ε͍ͯΕΤϥʔʹͳΒͳ͍ ΤϥʔʹͳΒͳ͍ྫɿ24ʢlongܕʣΛొޙɺ12.3ʢfloatܕʣΛొ σϑΥϧτͰখҎԼ͕ΓࣺͯΒΕͯ12Ͱొ͞Εͯ͠·͏ 138݄30༵ۚ
ઃఆؔ࿈ʢಈతϚοϐϯάʣ ϑΟʔϧυ໊ͳͲʹΑΔϑΟʔϧυܕͷਪఆΛઃఆՄೳ SolrͷμΠφϛοΫϑΟʔϧυͷΑΓॊೈͳػೳ mappingsఆٛʹdynamic_templatesͷઃఆΛྻͰՃ { "person" : { "dynamic_templates" :
[ { "template_1" : { "match" : "multi*", "mapping" : { "type" : "multi_field", "fields" : { "{name}" : {"type": "{dynamic_type}", "index" : "analyzed"}, "org" : {"type": "{dynamic_type}", "index" : "not_analyzed"} } } } },... 138݄30༵ۚ
ઃఆؔ࿈ʢςϯϓϨʔτʣ ΠϯσοΫε୯ҐͷઃఆςϯϓϨʔτԽՄೳ ΠϯσοΫε໊ʹtemplate͕Ұகͨ͠ͷΛద༻ɻorderͷେ͖͍ͷͰ্ॻ͖ ྫɿجຊઃఆϨϓϦΧ0͕ͩɺha_Ͱ͡·ΔΠϯσοΫεϨϓϦΧ5 curl -XPUT localhost:9200/_template/main_template -d ' {
"template" : "*", "order" : "1", "settings" : { "index.number_of_replicas" : 0 } } curl -XPUT localhost:9200/_template/ha_template -d ' { "template" : "ha_*", "order" : "10", "settings" : { "index.number_of_replicas" : 5 } } 138݄30༵ۚ
σʔλߏ 138݄30༵ۚ
σʔλߏʢωετʣ ωετɺࢠɺΦϒδΣΫτͳͲͷσʔλొՄೳ ʢSolrجຊϑϥοτͳσʔλͷΈʣ ྫɿTγϟπͷ৭ͱαΠζͷΈ߹Θͤʢωετʣ { "variation" : [ { "color"
: "blue", "size" : 4 }, { "name" : "green", "size" : 6 } ] } { "query" : { "nested" : { "path" : "variation", "query" : { "bool" : { "must" : [ { "term" : {"variation.name" : "green"} }, { "term" : {"variation.size" : "6"} } ] } } } } } ΫΤϦ σʔλ 138݄30༵ۚ
σʔλߏʢࢠʣ ࢠؔʹؔ͢ΔݕࡧՄೳʢmappingͰઃఆඞཁʣ ࢠσʔλొ࣌ʹIDΛࢦఆ $ curl -XPUT localhost:9200/shop/variation/1?parent=1 -d '{ "color"
: "red", "size" : "XL" }' ࢠσʔλ $ curl -XPUT localhost:9200/shop/cloth/1 -d '{ "name" : "something" }' σʔλ $ curl -XPUT localhost:9200/shop/variation/2?parent=1 -d '{ "color" : "green", "size" : "S" }' ࢠσʔλ { "has_child" : { "type" : "variation", "query" : { "bool" : { "must" : [ { "term": {"size" : "XL"} }, { "term": {"color" : "red"} } ] } } } } ΫΤϦ 138݄30༵ۚ
σʔλߏʢ෦ߋ৽ʣ _sourceϑΟʔϧυʹσϑΥϧτͰೖྗ͞ΕͨJSONͷσʔλΛอ࣋ ʢSolrʹͳ͍ʣ _sourceϑΟʔϧυΛ༻͢Δ෦ߋ৽͕Մೳ curl -XPOST 'localhost:9200/test/type1/1/_update' -d '{ "script"
: "ctx._source.counter += count", "params" : { "count" : 4 } }' 138݄30༵ۚ
ศརػೳʢTTLʣ TTLʹTime To Live σʔλͷੜଘظؒΛࢦఆՄೳʢྫ1ʣ ExpireͷνΣοΫॲཧ60sຖʹߦΘΕΔʢมߋՄʣ { "tweet" : {
"_ttl" : { "enabled" : true, "default" : "1d" } } } mapping 138݄30༵ۚ
ศརػೳʢϩάʣ index slow log/search slow logʢSolrʹͳ͍ػೳʣ ΠϯσοΫε࣌ɺݕࡧ࣌ʹॲཧ͕͖͍࣌ؒ͠Λ͑ͨΒϩάग़ྗ ϩάϨϕϧ͝ͱʹΛઃఆՄೳ #index.search.slowlog.threshold.query.warn: 10s
#index.search.slowlog.threshold.query.info: 5s #index.search.slowlog.threshold.query.debug: 2s #index.search.slowlog.threshold.query.trace: 500ms #index.search.slowlog.threshold.fetch.warn: 1s #index.search.slowlog.threshold.fetch.info: 800ms #index.search.slowlog.threshold.fetch.debug: 500ms #index.search.slowlog.threshold.fetch.trace: 200ms 138݄30༵ۚ
ศརػೳʢϓϥάΠϯʣ ElasticSearchͷ֦ுػೳ RiverɿσʔλΛElasticSearchʹྲྀ͠ࠐΉϓϥάΠϯʢྫɿRabbitMQͱ͔ʣ AnalysisɿΞφϥΠβͷϓϥάΠϯʢྫɿKuromojiͱ͔ʣ SiteɿΫϥελཧͱ͔ ϓϥάΠϯͷΠϯετʔϧଐͷpluginίϚϯυʹͯՄೳ ʢ௨ৗωοτʹଓ͍ͯ͠Δඞཁ͕͋Δʣ ϓϥάΠϯͷҰཡʢhttp://www.elasticsearch.org/guide/reference/modules/ plugins/ʣ 138݄30༵ۚ
ݕࡧػೳʢPercoratorʣ ΫΤϦΛΠϯσοΫεԽͯ͠ొ ొࡁΈͷΫΤϦʹώοτ͢Δσʔλ͔Ͳ͏͔ΛಛఆͷϦΫΤετʹσʔλ Λૹ৴͢Δ͜ͱͰΘ͔ΔΈʢར༻ՄೳͳΫΤϦҰ෦੍ݶ͋Γʣ curl -XPUT localhost:9200/_percolator/test/kuku -d '{ "query"
: { "term" : { "field1" : "value1" } } } curl -XGET localhost:9200/test/type1/_percolate -d '{ "doc" : { "field1" : "value1" } }' And the matches are part of the response: {"ok":true, "matches":["kuku"]} percoratorͷొ percoratorͷ֬ೝ 138݄30༵ۚ
ݕࡧػೳʢGeoʣ ҢܦσʔλΛར༻ͨ͠ݕࡧ Ңܦɺgeohashɺgeo_shapeͳͲ த৺͔ΒͷڑɺۣܗɺgeohashʹΑΔߜࠐͳͲ͕Մೳ ڑʹΑΔϑΝηοτ 138݄30༵ۚ
ొػೳʢόϧΫॲཧʣ େྔͷॲཧΛߦ͏ͨΊͷAPIʢ_bulkʣ http://www.elasticsearch.org/guide/reference/api/bulk/ UDPར༻Մೳ { "index" : { "_index" :
"test", "_type" : "type1", "_id" : "1" } } { "field1" : "value1" } { "delete" : { "_index" : "test", "_type" : "type1", "_id" : "2" } } { "create" : { "_index" : "test", "_type" : "type1", "_id" : "3" } } { "field1" : "value3" } { "update" : {"_id" : "1", "_type" : "type1", "_index" : "index1"} } { "doc" : {"field2" : "value2"} } όϧΫॲཧσʔλྫ 138݄30༵ۚ
ͦͷଞʢؔ࿈πʔϧͱ͔ʣ Kibana3ʴElasticSearchʴ(logstash OR fluentd) ElasticSearchΛετϨʔδʹͯ͠ϩάσʔλͷอଘͱՄࢹԽΛߦ͏ 138݄30༵ۚ
ࢀߟࢿྉͳͲ 138݄30༵ۚ
ࢀߟϖʔδ ຊՈˍΨΠυ http://www.elasticsearch.org http://www.elasticsearch.org/guide/ αϙʔτˍτϨʔχϯά http://elasticsearch.com Solr vs ElasticSearchͷຊޠ༁൛ https://github.com/minghai/ElasticSearch_VS_Solr
Sematextͷϒϩά http://blog.sematext.com 138݄30༵ۚ
ࢀߟॻ੶ͱ͔ ElasticSearch ServerʢPackt Publishingɺ2013/02݄ൃചʣ http://www.packtpub.com/elasticsearch-server-for-fast-scalable-flexible- search-solution/book http://elasticsearchserverbook.com Mastering ElasticSearchʢPackt Publishingɺ2013/12ൃച༧ఆʣ
http://www.packtpub.com/mastering-elasticsearch-querying-and-data- handling/book Elasticsearch in ActionʢManning Publicationsɺ2014/य़ɺMEAPߪೖՄʣ http://www.manning.com/hinman/ 138݄30༵ۚ
͓·͚ 138݄30༵ۚ
LuceneͱESͷόʔδϣϯ ElasticSearch Lucene 0.90.3 4.4 0.90.2 4.3.1 0.90.1 4.3 0.90.0
4.2.1 0.90.0rc2 4.2.1 0.90.0rc1 4.2 0.20.6 3.6.2 0.20.5 3.6.2 0.90.0 beta1 4.1 138݄30༵ۚ