Share
Embed
Transcript
57 slides
-
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Jun Ohtani @johtani 2014/12/17 - JJUG φΠτɾηϛφʔ Luceneͱຊޠͷݕࡧ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ΞδΣϯμ • Luceneʁ • సஔΠϯσοΫεɺN-Gramɺܗଶૉղੳ • ຊޠݕࡧʁ • KuromojiͳͲ • Elasticsearch͏ͱʁ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited about • Me, Jun Ohtani / Technical Adovocate lucene-gosenίϛολʔ ElasticSearch Serverຊޠ൛ͷ༁ elasticsearch-extended-analysisͷ։ൃ http://blog.johtani.info • Elasticsearch, founded in 2012 Products: Elasticsearch, Logstash, Kibana, Marvel Professional services: Support & development subscriptions Trainings -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Luceneͱʁ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Luceneͷಛ • ߴͳݕࡧϥΠϒϥϦ • Javaϕʔε • Apache License 2.0 • ࠷৽൛ɿ4.10.2ʢ͏͙͢ɺ4.10.3ϦϦʔεʣ • JDK 7ʢu25͔Βu55ͷؒʹϦϦʔε͞ΕͨJDKό ά͕͋ΔͨΊ༻ෆՄʣ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Luceneͷओͳػೳ • సஔΠϯσοΫεͷ࡞ͱݕࡧ • ݕࡧ݁ՌͷείΞϦϯά • ๛ͳΫΤϦʢۙɺϑϨʔζɺൣғͳͲʣ • ϑΟʔϧυࢦఆʹΑΔݕࡧ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited సஔΠϯσοΫεʁ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ༻ޠ • ΠϯσοΫε ݕࡧΤϯδϯ͕ݕࡧʹ༻͢Δσʔλͷอଘઌ • υΩϡϝϯτʢจॻʣ ݕࡧΤϯδϯʹอଘ͞Εͨσʔλ • ϑΟʔϧυ υΩϡϝϯτʹؚ·ΕΔଐੑ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ༻ޠ • ΫΤϦ ݕࡧ݅ɺݕࡧࣜ • λʔϜʢTermʣɺτʔΫϯʢTokenʣ ΠϯσοΫεͷΩʔʹͳΔ୯ޠʢจࣈྻʣ จষΛҰఆͷ๏ଇͰ۠ͬͨ୯ޠ ୯ޠ͚ͩͰͳ͘ɺ୯ޠͷҐஔͳͲؚΉ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited υΩϡϝϯτͷొ 1 2 ΧπΦαβΤͷఋ αβΤϫΧϝͷ࢞ υΩϡϝϯτͷొ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited υΩϡϝϯτͷొ 1 2 ΧπΦαβΤͷఋ αβΤϫΧϝͷ࢞ 1 2 ΧπΦ αβΤ ͷ ͷ αβΤ ϫΧϝ ఋ ࢞ υΩϡϝϯτͷొ ୯ޠʹׂ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited υΩϡϝϯτͷొ 1 2 ΧπΦαβΤͷఋ αβΤϫΧϝͷ࢞ 1 2 ΧπΦ αβΤ ͷ ͷ αβΤ ϫΧϝ ఋ ࢞ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 υΩϡϝϯτͷొ ୯ޠʹׂ ୯ޠ͔Βidͷྻ͕ Ҿ͚ΔΑ͏ʹ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ݕࡧ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ݕࡧ݅ೖྗ ΧπΦɹαβΤ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ݕࡧ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ΧπΦ αβΤ AND ݕࡧ݅ೖྗ ݕࡧ݅ͷύʔε ݕࡧΫΤϦԽ ΧπΦɹαβΤ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ݕࡧ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ΧπΦ αβΤ AND ݕࡧ݅ೖྗ ݕࡧ݅ͷύʔε ݕࡧΫΤϦԽ ΧπΦɹαβΤ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ݕࡧ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ΧπΦ αβΤ AND ݕࡧ݅ೖྗ ݕࡧ݅ͷύʔε ݕࡧΫΤϦԽ ΧπΦɹαβΤ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ݕࡧ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ΧπΦ αβΤ AND ݕࡧ݅ೖྗ ݕࡧ݅ͷύʔε ݕࡧΫΤϦԽ ΧπΦɹαβΤ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ݕࡧ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ΧπΦ αβΤ AND ݕࡧ݅ೖྗ ݕࡧ݅ͷύʔε ݕࡧΫΤϦԽ ΧπΦɹαβΤ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ݕࡧ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ΧπΦ αβΤ AND ݕࡧ݅ೖྗ ݕࡧ݅ͷύʔε ݕࡧΫΤϦԽ ΧπΦɹαβΤ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ݕࡧ ΧπΦ αβΤ 1 1 2 ͷ ࢞ ϫΧϝ 2 1 2 1 2 1 ఋ 2 ΧπΦ αβΤ AND ݕࡧ݅ೖྗ ݕࡧ݅ͷύʔε ݕࡧΫΤϦԽ ΧπΦɹαβΤ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited https://github.com/johtani/jjug- example αϯϓϧίʔυ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ୯ޠͷநग़ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ୯ޠͷ۠Γํ • ӳޠͷ߹ I speak about Lucene in JJUG night seminar. • ຊޠͷ߹ ࢲJJUGφΠτηϛφʔͰLuceneʹ͍ͭͯ͢ɻ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ୯ޠͷ۠Γํ • ӳޠͷ߹ I speak about Lucene in JJUG night seminar. εϖʔε͕ΕͱΘ͔Δ • ຊޠͷ߹ ࢲJJUGφΠτηϛφʔͰLuceneʹ͍ͭͯ͢ɻ Ͳ͜Ͱ۠ΕΑ͍ʁ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited N-Gramͱܗଶૉղੳ • సஔΠϯσοΫεͷΩʔͷ࡞Γํ ຊޠ୯ޠͷΕ͕Θ͔Βͳ͍ͷͰɺసஔΠϯσοΫεͷ Ωʔओʹ࣍ͷ̎ͭͷख๏Ͱ࡞ • N-Gram NจࣈͣͭจষΛ۠Δ • ܗଶૉղੳ ࣙॻͳͲΛ༻͍ͯҙຯͷ͋Δ୯ޠͰ۠Δ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ܗଶૉղੳ • ϝϦοτɿ ҙຯͷ͋Δ୯ޠͷΕ ࢺใΛݩʹՃॲཧ͕ՄೳʢޠװมͳͲʣ • σϝϦοτɿ ৽ޠʢະޠʣʹऑ͍ˠࣙॻϕʔεͷ߹ɺࣙॻʹͳ͍୯ޠݕ ग़ෆೳɻ ΧπΦαβΤͷఋ ΧπΦ ͷ αβΤ ఋ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited N-Gram • ϝϦοτɿ ະޠʹରԠՄೳ • σϝϦοτɿ ΠϯσοΫεංେԽ ࢺใʹجͮ͘ॲཧ͕ෆՄೳ ΧπΦαβΤͷఋ Χπ πΦ Φ α αβ βΤ Τͷ ͷఋ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Analyzerͷ֓ཁ Analyzer υΩϡϝϯτ Term Id ΧπΦ 1 αβΤ 1ɺ2 ϫΧϝ 2 … ... ΠϯσοΫε -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Analyzerͷ֓ཁ Analyzer ݕࡧ Ωʔϫʔυ ΠϯσοΫε ΠϯσοΫε ݕࡧॲཧ ݕࡧ݁Ռ Term Id ΧπΦ 1 αβΤ 1ɺ2 ϫΧϝ 2 … ... -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Analyzer Analyzerͷߏ char_filter tokenizer char_filter token_ filter token_ filter Text Tokens -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Char Filter • ೖྗจࣈྻΛจࣈ୯ҐͰॲཧ • ྫɿhtml_strip ೖྗɿ ग़ྗɿ <title>Elasticsearch is not a service of AWS</title> Elasticsearch is not a service of AWS -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Tokenizer • ೖྗจࣈྻΛτʔΫϯྻʹׂ • τʔΫϯͷׂ͢ΔϩδοΫτʔΫφΠβʹ ґଘ • ྫɿstandard ೖྗɿ ग़ྗɿ Elasticsearch is not a service of AWS Elasticsearch is not a service of AWS -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Tokenizer • ྫɿkeyword ग़ྗɿ • ྫɿkuromoji_tokenizer ೖྗɿ ग़ྗɿ ण࢘ ͕ ඒຯ͔ͬ͠ ͨ Elasticsearch is not a service of AWS ण͕࢘ඒຯ͔ͬͨ͠ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited TokenFilter • TokenizerʹΑΓग़ྗ͞ΕͨTokenྻʹରͯ͠ॲཧ • ྫɿlowercase ೖྗɿ ग़ྗɿ • ྫɿstop ೖྗɿ ग़ྗɿ Elasticsearch is not a service of AWS elasticsearch is not a service of aws Elasticsearch is not a service of AWS Elasticsearch service AWS -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited TokenFilter • ྫɿkuromoji_baseform ೖྗɿ ग़ྗɿ • ྫɿkuromoji_readingform ೖྗɿ ग़ྗɿ ण࢘ ͕ ඒຯ͔ͬ͠ ͨ ण࢘ ͕ ඒຯ͍͠ ͨ ण࢘ ͕ ඒຯ͔ͬ͠ ͨ sushi ga oishika ta -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Analysis - ຊޠͩͱʁ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited kuromoji • Christian Moen͞ΜʹΑΓLuceneʹدଃ • ࣙॻʹMeCabͷIPADICࣙॻ/ϞσϧΛར༻ • LuceneͷAnalyzerʹؚ·ΕΔ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited lucene-gosen • LGPL v2 • MeCabͷࣙॻσʔλΛར༻Մೳ • NAISTɺIPADicΛબՄೳ • όΠφϦࣙॻͷϏϧυπʔϧ͋Γ • https://github.com/lucene-gosen/lucene-gosen -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ͦͷ΄͔ͷLuceneͷػೳ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ͦͷ΄͔ͷओͳػೳ • GEO • ϋΠϥΠτ • ϑΝηοτ • άϧʔϐϯά -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Luceneͷόʔδϣϯ • εςʔϒϧɿ4ܥ • ։ൃɿ5ܥ - ࣍ظόʔδϣϯ • Ϛελɿ6ܥ - Java 8ඞਢ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited LuceneͷϞδϡʔϧ • core جຊύοέʔδ • analysis ݴޠυϝΠϯͷՃAnalysisύοέʔδ • codec σʔλܗࣜʢcodecɺpostings formatʣʹؔ͢Δύοέʔδ • queries ՃͷΫΤϦɺϑΟϧλ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited LuceneͷϞδϡʔϧ • queryparser ΫΤϦύʔαʔ͓ΑͼϑϨʔϜϫʔΫ • classification LuceneͷΠϯσοΫεใΛ༻͍ͨClassificationϞδϡʔϧ • expressions ಈతͳͷܭࢉΛϓϥΨϒϧʹมߋՄೳʹ͢ΔϞδϡʔϧ • facet ϑΝηοτʹؔ͢ΔϞδϡʔϧ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited LuceneͷϞδϡʔϧ • grouping ݕࡧ݁Ռͷάϧʔϐϯά༻Ϟδϡʔϧ • highlighter ݕࡧ݁ՌͷϋΠϥΠτ༻Ϟδϡʔϧ • join ΠϯσοΫεɺݕࡧ࣌ͷδϣΠϯ༻Ϟδϡʔϧ • spatial • ཧใݕࡧ༻Ϟδϡʔϧ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited LuceneͷϞδϡʔϧ • suggest ΦʔταδΣετɺεϖϧνΣοΫ༻Ϟδϡʔϧ • test-framework Luceneʹؔ࿈͢ΔΞϓϦέʔγϣϯͷͨΊͷςετϑϨʔϜ ϫʔΫ • demo LuceneͷػೳΛհ͢ΔσϞʢϑΝηοτͱ͔ʣ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Elasticsearchͱʁ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited ϑϦʔϫʔυݕࡧ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited ߜΓࠐΈ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited ϋΠϥΠτ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited ιʔτ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited ϖʔδϯά -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited ूܭ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited αδΣετ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited Elasticsearch in 10 seconds • εΩʔϚϑϦʔɺࢄυΩϡϝϯτετΞɺREST & JSON • Φʔϓϯιʔε: Apache License 2.0 • ઃఆͳ͠Ͱ؆୯ʹࢼ͢͜ͱ͕Մೳ • JavaͰ࣮ɻ֦ு༰қ -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ElasticsearchͰຊޠ • elasticsearch-analysis-kuromoji https://github.com/elasticsearch/elasticsearch- analysis-kuromoji • ΠϯετʔϧʢElasticsearch 1.4.xܥͷ߹ʣ bin/plugin -i elasticsearch/elasticsearch-analysis-kuromoji/2.4.1 -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ࢀߟจݙ - Lucene • ॻ੶ - Lucene in Action 2nd EditionʢLucene 3ʣ http://www.manning.com/hatcher3/ • ެࣜαΠτ http://lucene.apache.org/core/ • ຊޠͷࢀߟϒϩά http://lucene.jugem.jp http://mocobeta-backup.tumblr.com/tagged/ lucene -
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission
is strictly prohibited ࢀߟจݙ - Elasticsearch • Github https://github.com/elasticsearch • ΨΠυ http://www.elasticsearch.org/guide/ • ॻ੶ ElasticSearchServerຊޠ൛