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
700
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.2k
え?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.6k
Elastic Stackで始めるJavaアプリのパフォーマンス監視 / Intro Elastic Stack and Elastic APM Java
johtani
5
2.7k
様々なメトリクスやログを集めてシステム解析 - Elastic Stackの入門と活用 - / Intro Elastic Stack
johtani
0
200
Intro Elastic Stack at Telemetry WG
johtani
0
320
What's new in Elastic Stack 6.1?
johtani
0
790
Other Decks in Technology
See All in Technology
35分でわかるEffective Platform Engineering
nwiizo
5
570
ソフトウェアサプライチェーンの構造的リスクとコンテナ環境の保護
kyohmizu
5
760
案件に一番詳しいAIを Amazon Bedrock AgentCore で作る ― 知見が知見を生むチームへ / Compounding Knowledge with AgentCore
yusukeshimizu
1
170
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
120
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
240
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
1
310
8bit CPU 2026
koba789
5
2.2k
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
codmoninc
0
190
What's new in Go 1.27?
ciarana
0
290
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
360
AIで変わるエンジニアの働き方(仮)
naoinaoi
0
280
tamachi.go 誕生の裏側
rymiyamoto
1
200
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
330
40k
KATA
mclloyd
PRO
35
15k
It's Worth the Effort
3n
188
29k
Code Reviewing Like a Champion
maltzj
528
40k
Navigating Weather and Climate Data
rabernat
0
490
Typedesign – Prime Four
hannesfritz
42
3.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Odyssey Design
rkendrick25
PRO
2
770
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Building AI with AI
inesmontani
PRO
1
1.1k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.4k
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ਫ༵