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
Solr入門?
Search
Jun Ohtani
June 18, 2013
Technology
680
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Solr入門?
Jun Ohtani
June 18, 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
4
1.1k
え?SQLで入門?する ElasticsearchとElastic Stack / Getting started Elastic Stack with SQL
johtani
4
1.2k
Elastic Stack 入門 2018.09 / Getting started Elastic Stack 2018.09
johtani
3
3k
What's new in Elastic Stack 6.3
johtani
2
2.4k
Elastic Stackで始めるJavaアプリのパフォーマンス監視 / Intro Elastic Stack and Elastic APM Java
johtani
5
2.6k
様々なメトリクスやログを集めてシステム解析 - Elastic Stackの入門と活用 - / Intro Elastic Stack
johtani
0
190
Intro Elastic Stack at Telemetry WG
johtani
0
300
What's new in Elastic Stack 6.1?
johtani
0
770
Other Decks in Technology
See All in Technology
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
850
AWSシリコン最前線 〜AI時代のチップ選択を読み解く〜
htokoyo
2
500
ポケモンの型をTypeScriptの型システムで表現してみた
subroh0508
0
370
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
130
2026TECHFRESH畢業分享會 - AI 時代的人生存檔點
line_developers_tw
PRO
0
860
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
Socrates × Looker 〜セマンティックレイヤーで進化するデータ分析エージェント〜
hanon52_
3
2.2k
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
1.1k
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
150
自律型AIエージェントは何を破壊するのか
kojira
0
150
Building applications in the Gemini API family.
line_developers_tw
PRO
0
3.1k
How Timee Delivers Day 1 Production Ready LLM Features
tomoyks
0
150
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
WCS-LA-2024
lcolladotor
0
630
How to Ace a Technical Interview
jacobian
281
24k
GraphQLとの向き合い方2022年版
quramy
50
15k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
First, design no harm
axbom
PRO
2
1.2k
Building Applications with DynamoDB
mza
96
7.1k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
570
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
320
Faster Mobile Websites
deanohume
310
31k
My Coaching Mixtape
mlcsv
0
140
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Transcript
Solrೖ? 2013/06/18 @johtani 136݄19ਫ༵
ࣗݾհ ࢯ໊ɿେ୩ɹ७ Twitterɿ@johtani lucene-gosenͷίϛολʔ چϒϩάɿhttp://johtani.jugem.jp ৽ϒϩάɿhttp://blog.johtani.info ɹ※࠷ۙOctopressͰॻ͍ͯ·͢ 136݄19ਫ༵
ݕࡧΤϯδϯͬͯʁ 136݄19ਫ༵
શจݕࡧͬͯʁ શจݕࡧʢFull text searchʣͱɺίϯϐϡʔλ ʹ͓͍ͯɺෳͷจॻʢϑΝΠϧʣ͔ΒಛఆͷจࣈྻΛ ݕࡧ͢Δ͜ͱɻʮϑΝΠϧ໊ݕࡧʯʮ୯ҰϑΝΠϧ ͷจࣈྻݕࡧʯͱҟͳΓɺʮෳจॻʹ·͕ͨͬͯɺจ ॻʹؚ·ΕΔશจΛରͱͨ͠ݕࡧʯͱ͍͏ҙຯͰ༻ ͞ΕΔɻ ʢWikipediaΑΓʣ
136݄19ਫ༵
༻ޠ จॻʢυΩϡϝϯτʣ ɹݕࡧΤϯδϯʹอଘ͞ΕͨσʔλɻRDBͰͷϨίʔυʹ૬ ΫΤϦ ɹݕࡧ݅ɺݕࡧࣜ εΩʔϚ ɹRDBͷςʔϒϧʹ૬ ϑΟʔϧυ ɹRDBͷΧϥϜʹ૬ λʔϜʢTermʣ/τʔΫϯʢTokenʣ
ɹΠϯσοΫεͷΩʔʹͳΔ୯ޠʢจࣈྻʣ 136݄19ਫ༵
ݕࡧΤϯδϯͷಈ࡞ υΩϡϝϯτొͷྲྀΕ 1 2 ΧπΦαβΤͷఋ αβΤϫΧϝͷ࢞ υΩϡϝϯτͷొ 136݄19ਫ༵
ݕࡧΤϯδϯͷಈ࡞ υΩϡϝϯτొͷྲྀΕ 1 2 ΧπΦαβΤͷఋ αβΤϫΧϝͷ࢞ 1 2 ΧπΦ αβΤ
ͷ ͷ αβΤ ϫΧϝ ఋ ࢞ υΩϡϝϯτͷొ ୯ޠʹׂ 136݄19ਫ༵
ݕࡧΤϯδϯͷಈ࡞ υΩϡϝϯτొͷྲྀΕ 1 2 ΧπΦαβΤͷఋ αβΤϫΧϝͷ࢞ 1 2 ΧπΦ αβΤ
ͷ ͷ αβΤ ϫΧϝ ఋ ࢞ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 υΩϡϝϯτͷొ ୯ޠʹׂ ୯ޠ͔Βidͷྻ͕Ҿ ͚ΔΑ͏ʹ ʹసஔΠϯσοΫε 136݄19ਫ༵
ݕࡧΤϯδϯͷಈ࡞ ݕࡧͷྲྀΕ ΧπΦɹαβΤ ΧπΦ αβΤ 1 1 2 ͷ
࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ݕࡧจࣈೖྗ 136݄19ਫ༵
ݕࡧΤϯδϯͷಈ࡞ ݕࡧͷྲྀΕ ΧπΦɹαβΤ ΧπΦ αβΤ ΧπΦ αβΤ 1 1 2
ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ݕࡧจࣈೖྗ ݕࡧจࣈͷύʔε ʴݕࡧΫΤϦԽ AND 136݄19ਫ༵
ݕࡧΤϯδϯͷಈ࡞ ݕࡧͷྲྀΕ ΧπΦɹαβΤ ΧπΦ αβΤ ΧπΦ αβΤ 1 1 2
ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ݕࡧจࣈೖྗ ݕࡧจࣈͷύʔε ʴݕࡧΫΤϦԽ సஔΠϯσοΫεΛ ݕࡧ AND 136݄19ਫ༵
ݕࡧΤϯδϯͷಈ࡞ ݕࡧͷྲྀΕ ΧπΦɹαβΤ ΧπΦ αβΤ ΧπΦ αβΤ 1 1 2
ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ݕࡧจࣈೖྗ ݕࡧจࣈͷύʔε ʴݕࡧΫΤϦԽ సஔΠϯσοΫεΛ ݕࡧ AND 136݄19ਫ༵
ݕࡧΤϯδϯͷಈ࡞ ݕࡧͷྲྀΕ ΧπΦɹαβΤ ΧπΦ αβΤ ΧπΦ αβΤ 1 1 2
ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ݕࡧจࣈೖྗ ݕࡧจࣈͷύʔε ʴݕࡧΫΤϦԽ సஔΠϯσοΫεΛ ݕࡧ ˠANDݕࡧͳͷͰidͷ ྻͷANDΛͱΔ AND 136݄19ਫ༵
N-gramͱܗଶૉղੳ సஔΠϯσοΫεͷΩʔʢ୯ޠʣͷ࡞Γํ ຊޠ୯ޠͷΕ͕Θ͔Βͳ͍ͷͰసஔΠϯσοΫ εͷΩʔओʹͭ͗ͷ2ͭͷख๏Ͱ࡞Δ N-gram Nʢ1Ҏ্ͷࣈʣจࣈͣͭจষΛ۠Δ ܗଶૉղੳ ࣙॻͳͲΛ༻͍ͯҙຯͷ͋Δ୯ޠͰ۠Δ 136݄19ਫ༵
N-gram N͕2ͷ࣌ͷྫɿ ϝϦοτɿ ݕࡧ࿙Ε͕ͳ͍ σϝϦοτɿ ਫ਼͕ѱ͍"ʮΧπʯͰώοτͪ͠Ό͏ ΠϯσοΫε͕ංେԽ ޠװʢ୯ޠͷجຊܗͱ͔ʣͰݕࡧෆՄ ΧπΦαβΤͷఋ Χπ
πΦ Φ α αβ βΤ Τͷ ͷఋ 136݄19ਫ༵
ܗଶૉղੳ ܗଶૉղੳͷྫɿ ϝϦοτɿ ਫ਼͕Α͍ɿʮΧπʯͰݕࡧ"ʮΧπΦʯώοτ͠ͳ͍ ޠװʹΑΔݕࡧ͕ՄೳɿʮҿΈʯ"ʮҿΉʯ͕ݕࡧՄ σϝϦοτɿ ৽ޠʢະޠʣʹऑ͍"ࣙॻϕʔεͷ߹ʹࣙॻʹͳ͍ ୯ޠ͕Θ͔Βͳ͍ɻࣙॻߋ৽ޙΠϯσοΫε࠶࡞ ΧπΦαβΤͷఋ ΧπΦ
ͷ αβΤ ఋ 136݄19ਫ༵
Lucene/Solrͬͯʁ 136݄19ਫ༵
LuceneͱSolrͷؔ LuceneɿશจݕࡧϥΠϒϥϦ ɹʢసஔΠϯσοΫεϥΠϒϥϦʣ http://lucene.apahce.org/core/ SolrɿLuceneΛར༻ͨ͠શจݕࡧαʔό ɹྨࣅͷͷͱͯ͠ElasticSearchͳͲ http://lucene.apache.org/solr/ 136݄19ਫ༵
SolrͷΞʔΩςΫνϟ &RQWHQW )HHGHU HJ6ROU- &RQWHQW &RQQHFWRUV 0&) &RQWHQW 6RXUFHV ,QGH[
/XFHQH 6ROU:HE$SS VFKHPD VROU FRQILJ 8SGDWH&KDLQ $QDO\VLV 6HDUFK5HTXHVW +DQGOLQJ 4XHU\ 4XHU\ 3DUVHU 8SGDWH5HTXHVW +DQGOLQJ -DYD$SS6HUYHU 6HDUFK&RPS 6ROU&RUH $GPLQ 6WDWV =RR .HHSHU 5HVS :ULWHU $SDFKH6ROU &RQFHSWXDO $UFKLWHFWXUH $GPLQ 8VHU 8SGDWH +DQGOHU ,OOXVWUDWLRQE\&RPLQYHQW$6 <RXPD\IUHHO\XVHLWDV ORQJDV\RXDWWULEXWHZLWK OLQNWRZZZFRPLQYHQWFRP DFFRUGLQJWR&&E\OLFHQVH ZZZFUHDWLYHFRPPRQVRUJ 2ULJLQDOGLDJUDPE\ ZZZFRPLQYHQWFRP &RUH $GPLQ &RO OHFWLRQ $GPLQ ςΩετ Original diagram byɹ http://www.cominvent.com 136݄19ਫ༵
Solrͷߏύλʔϯ EmbeddedSolrɿJVMͰSolrΛىಈ WebΞϓϦʢ୯ҰʣɿJ2EEαʔό্ͰSolrΛىಈ Solrexampleͱͯ͠JettyΛแ ࢄݕࡧɿෳͷSolrΛ̍ͭͷΠϯσοΫεͱͯ͠ݕ ࡧɻʢݕࡧػೳͷΈɻΠϯσοΫεʣ http://wiki.apache.org/solr/DistributedSearch SolrCloudɿෳͷJ2EEαʔόͰΫϥελΛߏ http://wiki.apache.org/solr/SolrCloud 136݄19ਫ༵
ߏ֓ཁ Solr Web App SolrαʔόɻJ2EEαʔό্Ͱಈ࡞ SolrCore 1ͭͷΠϯσοΫεΛཧ schema.xmlͱsolrconfig.xmlͰίΞͷڍ ಈɺεΩʔϚΛఆٛ 1ͭͷSolrServer্ͰɺෳͷCoreΛىಈͰ͖
ΔɻʢϚϧνίΞʣ ͦΕͧΕͷίΞ͝ͱʹεΩʔϚͷઃఆ͕Մೳ 136݄19ਫ༵
ߏ֓ཁ Update Reuqest Handling ߋ৽ॲཧΛUpdateChainͱ͍͏ܗͰఆٛՄೳ SolrଆͰొલॲཧΛॻ͚Δ ྫɿݴޠผͯ͠ɺϑΟʔϧυΛܾఆͳͲ http://wiki.apache.org/solr/UpdateRequestProcessor Search Request
Handling ݕࡧΫΤϦΛड͚औΓ݁ՌΛग़ྗ͢Δॲཧ SearchComponentͷΈ߹ΘͤʹΑΓఆٛՄೳ http://wiki.apache.org/solr/SolrRequestHandler 136݄19ਫ༵
ߏ֓ཁ Analysis υΩϡϝϯτɺΫΤϦΛTokenʹղ͢Δॲཧ ࠷ऴతͳToken͕సஔΠϯσοΫεͷΩʔ 136݄19ਫ༵
AnalysisͷྲྀΕ http://www.lucenerevolution.org/sites/ default/files/Language%20support%20and %20linguistics%20in%20LuceneSolr %20%26%20its%20eco-system.pdf 136݄19ਫ༵
SolrͷΞʔΩςΫνϟ &RQWHQW )HHGHU HJ6ROU- &RQWHQW &RQQHFWRUV 0&) &RQWHQW 6RXUFHV ,QGH[
/XFHQH 6ROU:HE$SS VFKHPD VROU FRQILJ 8SGDWH&KDLQ $QDO\VLV 6HDUFK5HTXHVW +DQGOLQJ 4XHU\ 4XHU\ 3DUVHU 8SGDWH5HTXHVW +DQGOLQJ -DYD$SS6HUYHU 6HDUFK&RPS 6ROU&RUH $GPLQ 6WDWV =RR .HHSHU 5HVS :ULWHU $SDFKH6ROU &RQFHSWXDO $UFKLWHFWXUH $GPLQ 8VHU 8SGDWH +DQGOHU ,OOXVWUDWLRQE\&RPLQYHQW$6 <RXPD\IUHHO\XVHLWDV ORQJDV\RXDWWULEXWHZLWK OLQNWRZZZFRPLQYHQWFRP DFFRUGLQJWR&&E\OLFHQVH ZZZFUHDWLYHFRPPRQVRUJ 2ULJLQDOGLDJUDPE\ ZZZFRPLQYHQWFRP &RUH $GPLQ &RO OHFWLRQ $GPLQ ͜͜ Original diagram byɹ http://www.cominvent.com 136݄19ਫ༵
CharFilter TokenizerΑΓલͷจࣈྻʹରͯ͠ॲཧ Tokenize͞ΕΔલͷਖ਼نԽॲཧʹར༻ ྫɿʮűƄŖſʯ"ʮϏʔϧʯ ྫɿʮ̍ʯ"ʮ1ʯ http://wiki.apache.org/solr/ AnalyzersTokenizersTokenFilters#Char_Filters 136݄19ਫ༵
Tokenizer/TokenFilter ͍ͬͺ͍͋Γ·͢ɻಠ࣮ࣗՄೳ http://wiki.apache.org/solr/ AnalyzersTokenizersTokenFilters 136݄19ਫ༵
ઃఆϑΝΠϧ ओͳઃఆϑΝΠϧ solrconfig.xmlɿαʔόʹؔ͢ΔઃఆΛهࡌ ΩϟογϡઃఆɺόοϑΝαΠζͳͲ schema.xmlɿΠϯσοΫεͷߏʹؔ͢ΔఆٛΛ هࡌ ϑΟʔϧυఆٛɺϑΟʔϧυλΠϓఆٛͳͲ ͜ΕΒͷઃఆΛมߋͨ͠߹SoreCoreͷ࠶ىಈ͕ඞ ཁʢSolrαʔόͰͳ͍ʣ 136݄19ਫ༵
schema.xml ΠϯσοΫεͷߏΛXMLʹͯఆٛ ϑΟʔϧυఆٛʢ<fields>λάʣ ݕࡧʹར༻͢ΔϑΟʔϧυ໊ͷઃఆ ϑΟʔϧυܕʢ<types>λάʣ ϑΟʔϧυܕʢstringɺlongͳͲʣΛఆٛ ίϐʔϑΟʔϧυʢ<copyField>λάʣ Solr෦ͰϑΟʔϧυͷΛίϐʔ͢Δఆٛ 136݄19ਫ༵
FieldType ϑΟʔϧυܕେ͖͘2छྨ ඇςΩετܥ TokenizeॲཧΛߦΘͳ͍ ςΩετܥ TokenizeॲཧΛߦ͏ 136݄19ਫ༵
FieldTypeɿඇςΩετܥ ྫɿจࣈྻܕ <fieldType name="string" class="solr.StrField"/> nameɿϑΟʔϧυܕ໊ɻFieldఆٛ࣌ʹར༻ classɿSolr͕ఏڙ͍ͯ͠ΔΫϥε ※ಠࣗʹ࣮ɺఆٛ͢Δ͜ͱ΄΅ͳ͍ 136݄19ਫ༵
FieldType:ςΩετܥ ྫɿtext_jaϑΟʔϧυܕ <fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false"> <analyzer> <tokenizer class="solr.JapaneseTokenizerFactory"
mode="search"/> <filter class="solr.JapaneseBaseFormFilterFactory"/> <filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="lang/stoptags_ja.txt" /> ... </analyzer> </fieldType> nameɺclassඇςΩετܥಉ༷ AnalysisॲཧΛఆٛՄೳ 136݄19ਫ༵
Field લड़ͨ͠FieldܕΛར༻ͯ͠ɺ࣮ࡍʹݕࡧʹར༻͢Δϑ ΟʔϧυΛఆٛ ྫɿ <field name="features" type="text_general" indexed="true" stored="true" multiValued="true"/>
nameɿϑΟʔϧυ໊ typeɿϑΟʔϧυܕʢFieldTypeͰఆٛ͞Ε͍ͯΔͷʣ 136݄19ਫ༵
Fieldఆٛͷઃఆ߲ ଐੑ໊ આ໌ σϑΥϧτ indexed ݕࡧରϑΟʔϧυ͔Ͳ͏͔ true stored ϑΟʔϧυΛอଘ͢Δ͔Ͳ͏͔ true
required ඞਢϑΟʔϧυ͔Ͳ͏͔ false multiValued ϑΟʔϧυ͕ྻܕʢෳʣ͔Ͳ͏͔ false omitNorms normΛอଘ͢Δ false termVectors termPositions termOffsets Termʹؔ͢ΔใΛอଘ͢Δ false 136݄19ਫ༵
ϑΟʔϧυΦϓγϣϯͱϢʔεέʔε http://wiki.apache.org/solr/FieldOptionsByUseCase 136݄19ਫ༵
μΠφϛοΫϑΟʔϧυ ϑΟʔϧυ໊Λొ࣌ʹࢦఆͰ͖ΔΈ schema.xmlΛมߋ͠ͳ͍ͰϑΟʔϧυΛՃՄೳ ϑΟʔϧυ໊͔ΒϑΟʔϧυܕΛղܾ ྫɿʮ_dtʯͰऴΘΔ໊લͷ࣌ܕͱͯ͢͠Δ <dynamicField name="*_dt" type="date" indexed="true" stored="true"/>
136݄19ਫ༵
Indexing 136݄19ਫ༵
ొɺߋ৽ํ๏ REST API HTTPܦ༝Ͱొɺߋ৽Մೳ XMLɺJSONɺCSVܗࣜͰొՄೳ ίϚϯυπʔϧʢpost.jarɺpost.shʣ XMLܗࣜͷϑΝΠϧΛొɺߋ৽Մೳ ෦ͰHTTPܦ༝ͰSolrʹΞΫηε 136݄19ਫ༵
࣮ࡍͷొͷྲྀΕ add Solrʹσʔλ͕ૹΒΕɺసஔΠϯσοΫε࡞ σʔλͷमਖ਼addʢ෦Ͱdelete-insertʣ commitʢhard commitʣ addͨ͠σʔλΛݕࡧՄೳʹ ҰԠrollback͋Δ ※ηογϣϯͷ֓೦͕ͳ͍ͨΊɺ୭͕add͔ͨ͠ผ ͍ͯ͠ͳ͍ɻͦͷͨΊෳͷΫϥΠΞϯτ͔Βaddͯ͠
ͩΕ͔͕commitͨ͠Βɺ͕ͯ͢ݕࡧՄೳʹͳΔ 136݄19ਫ༵
addσʔλαϯϓϧʢXMLʣ <add> <doc> <field name="authors">Patrick Eagar</field> <field name="subject">Sports</field> <field name="dd">796.35</field>
<field name="numpages">128</field> <field name="desc"></field> <field name="price">12.40</field> <field name="title" boost="2.0">Summer of the all-rounder: Test and championship cricket in England 1982</field> <field name="isbn">0002166313</field> <field name="yearpub">1982</field> <field name="publisher">Collins</field> </doc> <doc boost="2.5"> ... </doc> </add> 136݄19ਫ༵
soft commit ϝϞϦ্ͷΠϯσοΫεͷίϛοτ ଈ࣌ݕࡧରͱ͢Δ͜ͱ͕Ͱ͖ΔʢҰ෦੍ݶ͋Γʣ ϑΝΠϧͷύʔγετ࣮ࢪ͠ͳ͍ http://wiki.apache.org/solr/UpdateXmlMessages#A. 22commit.22_and_.22optimize.22 136݄19ਫ༵
auto commit SolrαʔόଆͰఆظతʹίϛοτ͢Δػೳ solrconfig.xmlʹͯλΠϛϯάͷࢦఆ͕Մೳ maxDocsɿҰఆυΩϡϝϯτ͕add͞ΕͨΒίϛ οτ࣮ߦ maxTimesɿલͷadd͔ΒҰఆ͕࣌ؒܦաͨ͠Β ίϛοτ࣮ߦ soft/hardͷͦΕͧΕͰఆٛՄೳ http://wiki.apache.org/solr/SolrConfigXml?
#Update_Handler_Section 136݄19ਫ༵
আ IDࢦఆɺΫΤϦࢦఆͰͷআ͕Մೳ <delete> <id>0002166313</id> <id>0031745983</id> <query>subject:sport</query> <query>publisher:penguin</query> </delete> 136݄19ਫ༵
segment LuceneͷΠϯσοΫεߋ৽ࠩΛSegmentͱͯ͠ ՃʢهܕσʔλϕʔεΈ͍ͨͳײ͡ʣ Ճɺߋ৽σʔλSegmentʹΠϯσοΫεԽ আʹؔͯ͠ɺআϑϥάʹͯཧ ఆظతʢαΠζىҼͳͲʣʹMergeॲཧ͕࣮ߦ͞Ε Segment͕݁߹͞ΕΔ ໌ࣔతͳMergeʹoptimizeʢcommit࣌ʹࢦఆՄೳʣ MergeॲཧͷϙϦγʔsolrconfig.xmlʹࢦఆ 136݄19ਫ༵
Search 136݄19ਫ༵
ݕࡧػೳհ ϦΫΤετϋϯυϥ୯ҐͰಈ࡞ ʢઃఆsolrconfig.xmlʣ SearchComponentͷνΣΠϯͰݕࡧॲཧΛઃఆՄೳ QueryComponentʢݕࡧ࣮ߦʣɺ FacetComponentʢϑΝηοτܭࢉʣɺ HighlightComponentʢ݁ՌϋΠϥΠτʣͳͲ σϑΥϧτ/select 136݄19ਫ༵
SolrͷΞʔΩςΫνϟ &RQWHQW )HHGHU HJ6ROU- &RQWHQW &RQQHFWRUV 0&) &RQWHQW 6RXUFHV ,QGH[
/XFHQH 6ROU:HE$SS VFKHPD VROU FRQILJ 8SGDWH&KDLQ $QDO\VLV 6HDUFK5HTXHVW +DQGOLQJ 4XHU\ 4XHU\ 3DUVHU 8SGDWH5HTXHVW +DQGOLQJ -DYD$SS6HUYHU 6HDUFK&RPS 6ROU&RUH $GPLQ 6WDWV =RR .HHSHU 5HVS :ULWHU $SDFKH6ROU &RQFHSWXDO $UFKLWHFWXUH $GPLQ 8VHU 8SGDWH +DQGOHU ,OOXVWUDWLRQE\&RPLQYHQW$6 <RXPD\IUHHO\XVHLWDV ORQJDV\RXDWWULEXWHZLWK OLQNWRZZZFRPLQYHQWFRP DFFRUGLQJWR&&E\OLFHQVH ZZZFUHDWLYHFRPPRQVRUJ 2ULJLQDOGLDJUDPE\ ZZZFRPLQYHQWFRP &RUH $GPLQ &RO OHFWLRQ $GPLQ ͜͜ Original diagram byɹ http://www.cominvent.com 136݄19ਫ༵
ݕࡧͷྲྀΕ ݕࡧURLͷྫ http://localhost:8983/solr/collection1/select? q=Apache&start=0&rows=5 136݄19ਫ༵
ΫΤϦ qύϥϝʔλͰࢦఆ ΫΤϦύʔαʹΑΓɺύʔε͞ΕͯΠϯσοΫεΛݕࡧ σϑΥϧτluceneΫΤϦύʔα ྫɿtitle:"The Right Way" AND text:go http://wiki.apache.org/solr/
SolrQuerySyntax 136݄19ਫ༵
ग़ྗܗࣜ wtύϥϝʔλʹΑΓࢦఆՄೳ solrconfig.xmlʹ<queryResponseWriter>Ͱઃఆ ҎԼઃఆͳ͠Ͱར༻Մೳ http://wiki.apache.org/solr/QueryResponseWriter આ໌ xml xml XMLܗࣜɻσϑΥϧτ
json JSONܗࣜ python PythonͷγϦΞϥΠζܗࣜ ruby RubyͷγϦΞϥΠζܗࣜ php PHPͷevalؔܗࣜ phps PHPͷγϦΞϥΠζܗࣜ csv CSVܗࣜ 136݄19ਫ༵
ͦͷଞݕࡧύϥϝʔλ ओͳύϥϝʔλ ύϥϝʔλ આ໌ σϑΥϧτ start ݁ՌͷελʔτҐஔ 0 rows औಘ݅
10 fl औಘϑΟʔϧυ *,score fq ߜΓࠐΈ݅ df σϑΥϧτݕࡧϑΟʔϧυ 136݄19ਫ༵
ϑΝηοτ ݕࡧ݁ՌͷߜΓࠐΈʹΑ͘͏" υϦϧμϯͱݺΕΔ ϑΟʔϧυࢦఆɺΫΤϦࢦఆʹΑΓ ूܭ͕Մೳɻ ྫ http://localhost:8983/solr/collection1/select? q=Apache&fq=&facet=on&facet.field=genre 136݄19ਫ༵
ϋΠϥΠτ Googleݕࡧͷ݁Ռʹग़ͯ͘ΔεχϖοτΛ࡞ Solr෦ͰεχϖοτੜʴڧௐදࣔΛҰॹʹ࣮ߦ ϋΠϥΠτॲཧͷ੍ݶ ରϑΟʔϧυʮindexed=”true” stored=”true”ʯ ࣮ํ͕ࣜ3ͭଘࡏ ʢdefaultɺFastVectorɺPostingsʣ 136݄19ਫ༵
ιʔτ sortύϥϝʔλʹͯࢦఆՄೳ σϑΥϧτιʔτTF-IDFΛϕʔεʹͨ͠είΞ ΧϯϚ۠ΓͰෳࢦఆՄೳ ੍ݶ ରϑΟʔϧυʮmultiValued=”false”ʯ 136݄19ਫ༵
ࢄݕࡧ ෳͷSolrΛଋͶͯݕࡧՄೳʢΠϯσοΫεࣗͰ ࢄͤ͞Δඞཁ͋Γʣ yokozuna͜ͷػೳΛར༻ ػೳʹΑͬͯɺࢄݕࡧʹରԠ͍ͯ͠ͳ͍ػೳ͕͋Δ ࢄݕࡧ2ϑΣʔζ͔Βߏ 1. shardݕࡧ 2. ݕࡧ݁Ռ౷߹
136݄19ਫ༵
ࢄݕࡧͷΈ 1. shardݕࡧ Solr Core Solr Core Solr Core Solr
Core index index index shard title:Apache 136݄19ਫ༵
ࢄݕࡧͷΈ 1. shardݕࡧ Solr Core Solr Core Solr Core Solr
Core index index index shard title:Apache title:Apache title:Apache 136݄19ਫ༵
ࢄݕࡧͷΈ 1. shardݕࡧ Solr Core Solr Core Solr Core Solr
Core index index index shard title:Apache title:Apache title:Apache 136݄19ਫ༵
ࢄݕࡧͷΈ 1. shardݕࡧ Solr Core Solr Core Solr Core Solr
Core index index index shard idͷϦετ idͷϦετ idͷϦετ 136݄19ਫ༵
ࢄݕࡧͷΈ 1. shardݕࡧ Solr Core Solr Core Solr Core Solr
Core index index index shard idͷϦετ idͷϦετ idͷϦετ 136݄19ਫ༵
ࢄݕࡧͷΈ 2. ݁Ռ౷߹ Solr Core Solr Core Solr Core Solr
Core index index index shard ֤shard͔Β ͷ݁ՌΛείΞ Ͱιʔτ͠ɺඞ ཁͳ෦ΛऔΓ ग़͢ 136݄19ਫ༵
ࢄݕࡧͷΈ 2. ݁Ռ౷߹ Solr Core Solr Core Solr Core Solr
Core index index index shard ฦ٫σʔλऔಘ ͷͨΊɺ֤ shardʹidͰ ͍߹Θͤ 136݄19ਫ༵
ࢄݕࡧͷΈ 2. ݁Ռ౷߹ Solr Core Solr Core Solr Core Solr
Core index index index shard 136݄19ਫ༵
ࢄݕࡧͷΈ 2. ݁Ռ౷߹ Solr Core Solr Core Solr Core Solr
Core index index index shard flύϥϝʔλͰࢦఆ͞Εͨ ϑΟʔϧυใΛฦ٫ 136݄19ਫ༵
ࢄݕࡧͷΈ 2. ݁Ռ౷߹ Solr Core Solr Core Solr Core Solr
Core index index index shard 136݄19ਫ༵
ࢄݕࡧͷΈ 2. ݁Ռ౷߹ Solr Core Solr Core Solr Core Solr
Core index index index shard ݁ՌΛXMLԽͯ͠ Ϩεϙϯεग़ྗ 136݄19ਫ༵
SolrCloud Ϋϥελߏ͕ՄೳͳSolr ZookeeperͰߏɺઃఆΛཧ ϨϓϦΧͳͲΛઃఆՄೳ Solr 4ʙ Cloudera Search͜Ε͕ϕʔεʁ 136݄19ਫ༵
ͦͷଞͷػೳ MoreLikeThisɿྨࣅυΩϡϝϯτݕࡧ SpatialSearchɿҐஔใݕࡧ ResultGroupingɿݕࡧ݁Ռάϧʔϐϯά JoinɿDBͷJoinͷΑ͏ͳͷ SolrCellɿApache TikaΛར༻ͨ͠υΩϡϝϯτղ ੳʢPDFͳͲ͔Βຊจɺϝλσʔλநग़ʣ DataImportHandlerɿઃఆϑΝΠϧΛॻ͘ͱDBϑ ΝΠϧ͔ΒσʔλΛऔಘͯ͠SolrʹొͰ͖Δػೳ
136݄19ਫ༵
ࢀߟURL SolrຊՈͷWikiɿ ɹhttp://wiki.apache.org/solr/ LucidWorksͷϦϑΝϨϯεΨΠυɿ ɹhttp://docs.lucidworks.com/display/solr/Apache+Solr +Reference+Guide Tokenizerͷಈ࡞ʹ͍ͭͯʢLucene Revolution 2013ͷεϥΠυʣ ɹhttp://www.lucenerevolution.org/sites/default/files/
Language%20support%20and%20linguistics%20in %20LuceneSolr%20%26%20its%20eco-system.pdf Lucene RevolutionͷαΠτ ɹhttp://www.lucenerevolution.org/2013/Lucene-Solr- Revolution-2013-Presentations 136݄19ਫ༵