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
GISとして活用するElasticsearch
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takashi Funato
November 18, 2014
Technology
8k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GISとして活用するElasticsearch
Takashi Funato
November 18, 2014
More Decks by Takashi Funato
See All by Takashi Funato
AWS をちょっとわかった気になる / Kinda feel the AWS
tfunato
0
110
人に優しいAWS運用
tfunato
0
93
OSI reference model Layer I
tfunato
0
68
Goで作るWebアプリケーション Echo 編 といいつつGoの説明多い
tfunato
0
120
Scalaで実装した 分散処理システムの超概要
tfunato
0
210
Docker勉強会
tfunato
1
170
Other Decks in Technology
See All in Technology
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
200
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
160
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.2k
データエンジニアの次の戦場は "プロセスエンジニアリング"
sansantech
PRO
1
120
LLM Content Moderationを支える評価・改善ループの実践
suikabar
0
110
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
1k
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
5
1.3k
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
300
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
4
630
SharedWorkerを使ったキャッシュでネイティブアプリに負けないユーザー体験を目指す
kakehashi
PRO
1
110
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
210
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Git: the NoSQL Database
bkeepers
PRO
433
67k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
We Have a Design System, Now What?
morganepeng
55
8.4k
Are puppies a ranking factor?
jonoalderson
2
4.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
A better future with KSS
kneath
240
18k
Transcript
GISͱͯ͠׆༻͢Δ Elasticsearch @tfunato ધށɹོ ୈ7ճelasticsearchษڧձ 2014/11/18
Who am I ? • @tfunato ધށɹོ • ࣄɿJavaͰWebɻ࠷ۙHadoopͱ͔ •
ϨίϝϯυΤϯδϯΆ͍ͷ࡞ͬͨΓ • جຊԿͰ • ઃܭɺ։ൃɺηοτΞοϓɺӡ༻ • Java-ja͔Βདྷ·ͨ͠
ElasticsearchͱҐஔใ • Ϛοϐϯά • geo point type • ҢܦͷΠϯσΫγϯά •
geohash • geo shape type • ଟ֯ܗͳͲͷܗΛΠϯσΫγϯά
ElasticsearchͱҐஔใ • ϑΟϧλʔ • geo distance filter • Ңܦใ͔Βͷڑ •
geo polygonfilter • ଟ֯ܗʹؚ·ΕΔϙΠϯτͷϑΟϧλ
ElasticsearchͱҐஔใ • ͦͷଞExperimentalͳػೳ • ଞɺ·ͩษڧதͰ͢
ͳʹ͔ ࡞Εͳ͍͔ʁ
Ґஔใ ͱ͍͑
Ingress
Ґஔใ ͱ͍͑
Ingress
IngressͷͤͭΊ͍ Ingress(ΠϯάϨε)GoogleͷࣾελʔτΞοϓʮφΠΞϯςΟοΫϥϘʯʢNiantic Labsʣ͕։ൃɾӡӦ͢ΔɺεϚʔτϑΥϯʹରԠͨ͠ɺ֦ுݱ࣮ٕज़Λར༻ͨ͠ΦϯϥΠϯήʔϜɾҐஔใήʔϜɻ201211݄ʹট੍Ͱϕʔλ൛ͷӡ༻͕։࢝͞Εɺ201310݄ʹͩΕͰࢀՃՄೳͷ ΦʔϓϯϕʔλʹҠߦ͠ɺ201312݄15ʹਖ਼ࣜӡ༻͕։࢝͞ΕͨɻॳAndroidઐ༻Ͱ͕͋ͬͨɺ20147݄23ΑΓiOSʹରԠͨ͠ɻϓϨΠ͢ΔͨΊͷΞϓϦέʔγϣϯGoogle Play͓ΑͼApp StoreͰແྉͰఏڙ͞Ε͓ͯΓɺΞΠςϜ՝ۚଘࡏ͠ͳ͍ɻGoogleͷαʔϏεͰ͋Δͨ ΊɺϓϨΠʹGmailΞΧϯτ͕ඞཁɻ·ͨGoogle+ͷࢀՃ͕ਪ͞Ε͍ͯΔɻΩϟονίϐʔThe world around you
is not what it seems.ʢ͋ͳͨͷपΓͷੈքɺݟͨ··ͷͷͱݶΒͳ͍ʣͰ͋ΔɻήʔϜͷίϯηϓτਞऔΓήʔϜͰ͋ΔɻϓϨΠϠʔ2ͭͷྗͷ͏ͪͷͲͪ Β͔ʹଐ͢Δɻੈք֤ʹଘࡏ͢ΔʮϙʔλϧʯΛࣗྗͷॴ༗ͱ͠ɺϙʔλϧಉ࢜ΛʮϦϯΫʯͯ͠ࡾ֯ܗΛඳ͘ͱɺͦͷଆ͕ʮίϯτϩʔϧϑΟʔϧυʯͱݺΕΔࣗਞʹͳΔɻͦͷ໘ੵͷେ͖͞Λڝ͏ɻ࠷େͷಛɺήʔϜϑΟʔϧυ͕ੈքͦͷͷɺݱ࣮ͷGoogle ϚοϓʹΑΔਤ ͦͷͷͩͱ͍͏͜ͱͰ͋Δɻϙʔλϧશͯݱ࣮ੈքʹଘࡏ͢ΔݐͳͲʹׂΓͯΒΕ͓ͯΓɺήʔϜதͰϙʔλϧΛ֬อ͢ΔͨΊʹɺ࣮ࡍʹͦͷॴ·Ͱߦ͔ͳ͚Ε͍͚ͳ͍ɻͦͷͨΊεϚʔτϑΥϯ্ͰGPSػೳΛ༗ޮʹ͢Δ͜ͱ͕ϓϨΠͷલఏͱͳ͍ͬͯΔɻεϚʔτϑΥϯͰΠ ϯλʔωοτଓͱGPSड৴͕Ͱ͖ΕੈքதͲ͜Ͱ͜ͷήʔϜΛϓϨΠ͢Δ͜ͱ͕Ͱ͖ΔɻήʔϜͷഎܠͱͳΔετʔϦʔ͕ઃఆ͞Ε͓ͯΓɺಈըͳͲͷܗࣜͰগͣͭ͠ެ։͞Ε͍ͯΔɻ͜ͷετʔϦʔʹج͍ͮͨେنΠϕϯτ͕ൃੜ͢Δ͜ͱ͋ΓɺΠϕϯτͰͷ྆ਞӦͷ݁Ռετʔ ϦʔʹӨڹΛٴ΅͢ɻݱ࣮ੈքͰల։͞ΕΔͱ͍͏ήʔϜͷಛੑ্ɺಛఆͷҬͷϓϨΠϠʔ͕ίϛϡχςΟΛ࡞ͨ͠ΓɺΦϑϥΠϯϛʔςΟϯάΛߦͬͨΓ͢Δػձ͕ଟ͍ɻ·ͨɺؠखݝͷΑ͏ʹIngressΛ؍ޫৼڵʹ׆༻͢Δ࣏ࣗମग़ݱͨ͠ɻήʔϜ՝ۚΞΠςϜଘࡏ͠ͳ͍ͷ ͷɺεϚʔτϑΥϯ༻ϞόΠϧόοςϦʔҠಈඅͳͲͷIngressʹؔ͢Δग़අϢʔβͷؒͰ௨শʮϦΞϧ՝ۚʯͱݺΕΔɻΤʔδΣϯτ[ฤू] ϓϨΠϠʔʮΤϯϥΠςϯυʯ͔ʮϨδελϯεʯɺͲͪΒͷྗʢFactionʣͷΤʔδΣϯτʹͳΔ͔ΛબΜͰήʔϜΛ։࢝͢Δɻ ίʔυωʔϜʢϓϨΠϠʔ໊ʣ͓Αͼॴଐྗݪଇͱͯ͠ม͑Δ͜ͱͰ͖ͳ͍ɻ·ͨɺҐஔใ͔Βੜ׆ൣғ͕͔Δ߹͋ΔͨΊɺίʔυωʔϜଞͷ׆ಈͱؔͳ͍ಗ໊ੑͷߴ͍ͷ͕ਪ͞Ε͍ͯΔ[7]ɻ ίʔυωʔϜޡͬͯຊ໊Λೖྗͯ͠͠·ͬͨ߹ͳͲͷΈมߋՄೳͰ͋Δ͕ɺGoogleͷ৹ࠪΛܦΔඞཁ͕͋Δ[8]ɻ ྗΛมߋ͢Δ߹ਃ͕ඞཁͰ͋ΔɻڐՄ͞ΕΔͷ1ϓϨʔϠʔʹ͖ͭ1ճͰɺมߋޙΞΠςϜɾܦݧͳͲ͕શͯॳظԽ͞ΕΔ[8]ɻ ήʔϜதͰΤϯϥΠςϯυɺϨδελϯε੨ɺதཱനͰද͞ΕΔɻ ϙʔλϧɾϨκωʔλʔ จԽతɾܳज़తɾफڭతʹॏཁͳॴ͕ϙʔλϧͱͳ͍ͬͯΔɻ ۩ମతʹ࢙ɺه೦ൾɺூ૾ɺύϒϦοΫΞʔτɺਤॻؗɺ༣ศہɺӺɺڭձɺਆࣾͳͲ[9][10]ɻ ͨͩ͠ɺେֶΛআֶ͘ߍɺফॺපӃɺܯॺͷΑ͏ͳڌɺݸਓͷɺةݥͳॴɺܠ؍ɺӬٱతͰͳ͍ͷʹ͍ͭͯঝೝ͞Εͳ͍Մೳੑ͕ߴ͍ͱ͞ΕΔɻ ͦͷҬͰϙʔλϧʹద͢ΔͱࢥΘΕΔॴ͕͋ΕɺήʔϜ্͔Β৽نϙʔλϧͷީิͱͯ͠ਃ͢Δ͜ͱ͕Ͱ͖ΔɻӡӦʹͯ৹ࠪ͠ೝΊΒΕΕ৽ͨʹϙʔλϧ͕૿͑Δɻ ϙʔλϧͷ৹ࠪʹཁ͢Δظؒ3ʙ4िؒͱ͞Ε͍ͯΔɻ ϙʔλϧ͔Β40ϝʔτϧҎʹ͖ۙͮɺϙʔλϧΛʮϋοΫʯ͢Δͱ֤छΞΠςϜ͕खʹೖΔɻ ग़ݱ͢ΔΞΠςϜͷϨϕϧϙʔλϧ͓ΑͼϓϨΠϠʔͷϨϕϧʹґଘ͢Δɻ ఢྗͷϙʔλϧΛϋοΫ͢ΔͱΞΠςϜʹՃ͑ͯAPʢܦݧʣ͕खʹೖΔ͕ɺϙʔλϧ͔ΒͷܸͰࣗΒͷXM͕ݮগ͢Δɻ ϙʔλϧʹʮϨκωʔλʯ(Resonator)Λઃஔ͢Δͱͦͷϙʔλϧ͕ࣗྗͷͷͱͳΔɻ ఢྗͷϙʔλϧʹରͯ͠ɺʮXMPόʔελʔʯʢXMP Bursterʣͱ͍͏ΞΠςϜͰશͯͷϨκωʔλΛഁյ͠ɺ͍ͬͨΜதཱʹ͔ͯ͠ΒϨκωʔλΛઃஔ͢ΔͱࣗྗͷͷͱͳΔɻ ϙʔλϧʹMODͱΑΕΔΞΠςϜΛઃஔ͢Δ͜ͱ͕ՄೳɻΞΠςϜʹΑͬͯޙड़ͷϦϯΫՄೳͳڑ͕৳ͼͨΓɺ߈ܸͷੑ্͕ͨ͠Γ͢Δɻ ϦϯΫͱίϯτϩʔϧϑΟʔϧυ ϙʔλϧʹϨκωʔλΛ8ຊઃஔ͢Δͱͦͷϙʔλϧ͔ΒଞͷࣗྗͷϙʔλϧΛʮϦϯΫʯ͢Δ͜ͱ͕Ͱ͖Δɻ ϙʔλϧಉ࢜ΛϦϯΫ͢ΔʹɺϦϯΫઌϙʔλϧͷʮϙʔλϧΩʔʯ͕ඞཁʹͳΔɻϙʔλϧΩʔϋοΫͰಘΔ͜ͱ͕Ͱ͖ΔΞΠςϜͷҰछͰ͋Δɻ ϙʔλϧͷϨϕϧʹΑͬͯϦϯΫՄೳͳڑมԽ͢Δ[12]ɻ࠷ߴϨϕϧʢϨϕϧ8ʣͷϙʔλϧͰ655kmɺߋʹMOD(Very Rare Link Amp)Λซ༻͢Ε࠷6877kmͷڑͰϦϯΫ͕ՄೳͱͳΔɻ 3ͭͷϙʔλϧΛࡾ֯ܗΛඳ͘Α͏ʹϦϯΫ͢Δͱɺਤ্ͷͦͷ෦͕ࣗྗͷʮίϯτϩʔϧϑΟʔϧυʯ(Control Field, CF)ͱͳΔɻίϯτϩʔϧϑΟʔϧυΛ࡞͢Δͱɺͦͷ໘ੵͱਓޱີʹԠͨ͡ʮϚΠϯυϢχοτʯ(MU)ͱݺΕΔಘ͕खʹೖΔɻ ਓޱີ͕Өڹ͢ΔͨΊɺಉ͡໘ੵͷίϯτϩʔϧϑΟʔϧυͳΒํΑΓࢢ෦ͷํ͕MUͷ͕େ͖͘ͳΔ[12]ɻ ٯʹɺఢྗͷίϯτϩʔϧϑΟʔϧυΛߏ͍ͯ͠ΔϙʔλϧͷϨκωʔλΛഁյ͠தཱʹ͢ͱɺϦϯΫ͓ΑͼίϯτϩʔϧϑΟʔϧυഁյ͞ΕɺͦͷͷMUΛݮগͤ͞Δ͜ͱ͕Ͱ͖Δɻ ྆ྗͰMUͷ͕ଟ͍΄͏͕༏ͱͳΔɻ ٿද໘Λ24,576ׂ֤ͨ͠ηϧʢҬʣͰɺ175࣌ؒαΠΫϧ͝ͱʹଘ͍ͯ͠ΔίϯτϩʔϧϑΟʔϧυͷMU͕ूܭ͞Εͯউഊ͕ܾ·Γɺ͞ΒʹશҬͷMU͕߹ࢉ͞ΕੈքϨϕϧͰͷউഊ͕ܾ·Δɻ Ϩϕϧ ΤʔδΣϯτɺϙʔλϧɺΞΠςϜʢϨκωʔλXMPόʔελʔʣʹͯ͢ʮϨϕϧʯ͕͋ΔɻΞΠςϜͷϨϕϧ1͔Β8·ͰͰ͋Δ͕ɺΤʔδΣϯτͷϨϕϧ9Ҏ্ઃఆ͞Ε͍ͯΔɻ ΤʔδΣϯτͷϨϕϧAPʢAccess PointsʣͱݺΕΔܦݧΛੵΉ͜ͱͰ্͕͍ͬͯ͘ɻϨϕϧ8·ͰAPͷΈͰୡͰ͖Δ͕ɺϨϕϧ9Ҏ্APʹՃ͑ͯϝμϧͱݺΕΔ࣮Ұఆ֫ಘ͢Δඞཁ͕͋Δɻ ༻Ͱ͖ΔΞΠςϜΤʔδΣϯτͷϨϕϧʹґଘ͢Δɻྫ͑ɺϨϕϧ1ͷΤʔδΣϯτϨϕϧ2Ҏ্ͷΞΠςϜΛ༻Ͱ͖ͳ͍ɻ લड़ͷͱ͓ΓɺΞΠςϜͷϨϕϧ8·ͰͰ͋ΔͨΊɺΤʔδΣϯτͷϨϕϧ͕8ʹͳΕଘࡏ͢ΔΞΠςϜ͕શͯ༻Ͱ͖Δɻ ϙʔλϧͷϨϕϧΞΠςϜͷ1ͭͰ͋ΔϨκωʔλʹґଘ͢ΔͨΊɺߴϨϕϧͷϙʔλϧΛ࡞ΔʹߴϨϕϧͷΤʔδΣϯτ͕ඞཁͱͳΔɻϨκωʔλͷഁյಉ༷Ͱ͋Δɻ 7JB8JLJQFEJB
ཁ੨ͱʹ͔Εͯ ਤ্ʹϚοϓ͞Εͨ ڌΛऔΓ߹͏ήʔϜ
IngressͰ݁ߏେࣄͳ͜ͱ •ఢͷߦಈཤྺ •ग़ॴ •ߦಈ࣌ؒ ͱରࡦʂ
Ingressͷެࣜπʔϧͷ IntelMapΛ༻͢Δͱ ͍ͭͲ͜Ͱ୭͕ԿΛ͍ͯͨ͠ ͷ͔Θ͔Δʂ
None
APIΛϋοΫͯ͠ ElasticsearchʹͿͬ͜Ή
Έ IntelMapͷAjax௨৴ΛRubyͰِͯ͠ɺ ௨৴σʔλΛܗͯ͠ElasticsearchʹͿͬ ͜Έ·͢ɻͦΕΛɺKibanaͰදࣔɻ
σϞ
·ͱΊ •ElasticsearchͱҐஔใ૬ੑ͕͍͍ •Ingress΄Ͳ΄Ͳʹ •Ingress੨৭͕͓קΊͰ͢
Θ͕RegistanceͰ ຊͷΤʔδΣϯτΛืू͓ͯ͠Γ·͢ ·ͨɺIngress Resistance Tokyo, Japan ͱ͍͏G+ίϛϡχςΟͰ͓ޓ͍࿈ܞΛ औΓͳ͕Β׆ಈΛߦ͍ͬͯ·͢ͷͰ ͪ͜ΒΑΓɺࢀՃΛ͓͓ͪͯ͠Γ·͢ http://join.resist.tokyo
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠