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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Jun Ohtani
June 18, 2013
Technology
690
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.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
310
What's new in Elastic Stack 6.1?
johtani
0
780
Other Decks in Technology
See All in Technology
現場で使える AWS DevOps Agent 活用ノウハウ - Release Management 機能の検証結果を添えて / AWS DevOps Agent Release Management and Know-How
kinunori
5
840
オートマトンと字句解析でRoslynを読む
tomokusaba
0
130
信頼できるテスティングAIをどう育てるか?
odan611
0
180
Pavlokで始める電撃駆動開発
sgrsn
0
140
ウォーターフォール開発案件のPMとしてAI活用を模索している話
hatahata021
2
250
AI研修(Day1)【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
3.2k
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
390
論語・武士道・産業革命から見る かわるもの、かわらないもの
ichimichi
8
2k
Claude Code並行開発環境の ムダ‧ムラ‧ムリを見直した話
muranakaaa
0
380
Data Hubグループ 紹介資料
sansan33
PRO
0
3.1k
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
4
580
A Bag-of-Documents Model for Query Specificity
dtunkelang
0
190
Featured
See All Featured
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.8k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
270
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
The World Runs on Bad Software
bkeepers
PRO
72
12k
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ਫ༵