Upgrade to Pro — share decks privately, control downloads, hide ads and more …

フリマアプリ「フリル」を支える Elasticsearch を用いた全文検索入門

Yuta Horii
September 20, 2017

フリマアプリ「フリル」を支える Elasticsearch を用いた全文検索入門

Talked at 【サポーターズCoLab勉強会】フリマアプリ「フリル」を支えるElasticsearchを用いた全文検索入門

https://supporterzcolab.com/event/160/

Yuta Horii

September 20, 2017
Tweet

More Decks by Yuta Horii

Other Decks in Programming

Transcript

  1. 6 ΞδΣϯμ w &MBTUJDTFBSDIͱ͸ʁ w &MBTUJDTFBSDIͷ$36% w Ϋϥελߏ੒ʹ͍ͭͯ w ݕࡧͷઃܭͱ࣮૷

    w JOEFYߏஙʹ͍ͭͯ w ݕࡧਫ਼౓޲্ͷͨΊͷऔΓ૊Έ w ݕࡧϩδοΫͷมߋ w ݕࡧΫΤϦͷվળ w ·ͱΊ
  2. 8 &MBTUJDTFBSDIʹ͍ͭͯ w ෼ࢄܕ3&45GVMݕࡧΤϯδϯ w શͯͷೖग़ྗ͸3&45ΠϯλʔϑΣΠεʢ+40/ʣܗࣜ w Ϋϥελߏ੒Ͱӡ༻͞Εɺطଘσʔλͷ෼ࢄϨϓϦΧ΋ࣗಈ Ͱ࣮ߦ w

    +BWBͰ࣮૷ w Φʔϓϯιʔε w IUUQTHJUIVCDPNFMBTUJDFMBTUJDTFBSDI w εΩʔϚϑϦʔ w εΩʔϚ σʔλϚοϐϯά ఆٛͳ͠Ͱɺσʔλ౤ೖ͕Մೳ w ౤ೖͨ͠஋Ͱࣗಈతʹܕ൑ผɺ΋ͪΖΜ໌ࣔతʹఆٛ΋Մೳ w ϚϧνςφϯτରԠ w ΠϯσοΫεΛෳ਺࣋ͭ͜ͱ͕Մೳ
  3. 13 ࣮ࡍͷݕࡧΫΤϦ DVSMIUUQMPDBMIPTUGSJM@TFBSDIa QSFUUZE\ RVFSZ\ CPPM\ NVTU\ RVFSZ@TUSJOH\ EFGBVMU@PQFSBUPSBOE 

    VTF@EJT@NBYUSVF  RVFSZϫϯϐʔε  BOBMZ[FSKB@OBNF@BOBMZ[FS ^ ^  GJMUFS< \lSBOHFz\QSJDF\GSPN JODMVEF@MPXFSUSVF UP  JODMVEF@VQQFSUSVF^^^  \UFSN\CSBOE@JE^^  \UFSN\DBUFHPSZ@JE^^ > 
  4. 15 Ϋϥελߏ੒ʹ͍ͭͯ wશ୆ͷ&$αʔόͰΫϥελϦϯά w .BTUFS/PEF୆ʢ಺୆͸଴ػܥʣ w %BUB/PEF୆ wOVNCFSPGTIBSET w ΠϯσοΫε͕࣋ͭϓϥΠϚϦʔγϟʔυͷ਺

    w ϑϦϧͰ͸γϟʔυӡ༻ w γϟʔυ਺ͱϊʔυ਺Λಉ͡ʹઃఆ wOVNCFSPGSFQMJDBT w ϓϥΠϚϦγϟʔυ͕࣋ͭϨϓϦΧγϟʔυͷ਺ w ϑϦϧͰ͸σϑΥϧτͷϨϓϦΧઃఆ
  5. 16 &MBTUJDTFBSDIͷΫϥελߏ੒ .BTUFS /PEF .BTUFS FMJHJCMF/PEF %BUB /PEF %BUB /PEF

    %BUB /PEF %BUB /PEF %BUB /PEF %BUB /PEF %BUB /PEF %BUB /PEF %BUB /PEF %BUB /PEF .BTUFS FMJHJCMF/PEF &MBTUJDTFBSDI$MVTUFS 8FCBQQ 4FSWFS "1*TFSWFST 8FCBQQ 4FSWFS 8FCTFSWFST
  6. 20 ઃܭʹ͍ͭͯ w&MBTUJDTFBSDIΛ࢖࣮ͬͯݱ͍ͨ͜͠ͱΛܾΊΔ w λΠτϧ΍঎඼આ໌ʹର͢Δશจݕࡧ w ϒϥϯυ΍ΧςΰϦͰͷߜΓࠐΈ w ͍͍Ͷॱ΍ग़඼೔Ͱͷιʔτ wϑΟʔϧυͱσʔλܕΛܾΊΔ

    w ঎඼σʔλͱ&MBTUJDTFBSDIϑΟʔϧυͱͷϚοϐϯά w UJUMFTUSJOHɺCSBOE@JEJOUFHFSɺDSFBUFE@BUEBUF wݕࡧͷͨΊͷσʔλͷΞφϥΠζํ๏ΛܾΊΔ w େจࣈͱখจࣈΛؾʹͤͣ)JU͍ͤͨ͞ w ʮʹʯʮ͕ʯͳͲͷॿࢺΛল͖͍ͨ
  7. 24 શจݕࡧ͍ͭͯิ଍ χϯςϯυʔ4XJUDIţŲƅŽŪŏŖƃᶄ৽඼ͷ঎඼ લॲཧ χϯςϯυʔTXJUDIεϓϥτΡʔϯ৽඼ͷ঎඼ τʔΫϯ෼ׂ χϯςϯυʔTXJUDIεϓϥτΡʔϯ ৽඼ͷ঎඼ τʔΫϯຖͷ ॲཧ

    χϯςϯυʔTXJUDIεϓϥτΡʔϯ ৽඼ͷ঎඼ ΞϧϑΣϕοτ͸খจࣈԽɺ൒֯Λશ֯ʹɺᶄͳͲͷґଘจࣈΛਖ਼نԽ ೔ຊޠͰݕࡧͰ͖ΔΑ͏ʹ඼ࢺ୯ҐͰτʔΫϯʹ෼ׂ ෼ׂޙɺτʔΫϯͱͯ͠ҙຯͷͳͦ͞͏ͳॿࢺͷ࡟আ
  8. 25 શจݕࡧ͍ͭͯิ଍ w χϯςϯυʔ w TXJUDI w εϓϥτΡʔϯ w 

    w ৽඼ w ঎඼ ݕࡧΫΤϦ χϯςϯυʔTXJUDI lχϯςϯυʔ48*5$)z ݕࡧτʔΫϯ ঎඼τʔΫϯ l৽඼ͷεϓϥτΡʔϯz ৽඼εϓϥτΡʔϯ lεϓϥᶄz εϓϥ
  9. 35 ݕࡧਫ਼౓ʹ͍ͭͯ શͯͷ঎඼υΩϡϝϯτ ϢʔβʔͷٻΊ͍ͯͨ ঎඼υΩϡϝϯτ γεςϜͷݕࡧ݁Ռ $ # " 

    w "ɿϢʔβʔͷཉ͍͠঎඼ͱγεςϜͷ݁Ռ͕Ұகͨ͠෦෼  w #ɿϢʔβʔ͕ཉ͘͠ͳ͍ͷʹɺݕࡧ݁Ռʹؚ·ΕͨϊΠδʔͳ෦෼  w $ɿϢʔβʔ͕ཉ͍͠ͷʹɺݕࡧ݁Ռʹؚ·ΕͣɺऔΓ͜΅ͯ͠͠·ͬͨ෦෼
  10. 45 ΞφϩάλΠϓͷΫΤϦվળ w άον߳ਫ w ϙέϞϯ%4ιϑτ w ϫϯϐʔεϑΟΪϡΞ w ϛχΦϯζ%7%

    w ϒϥϯυ΍ΧςΰϦͷϦετ͔Βબ୒Ͱ͖Δ͕ɺΩʔϫʔυͰ ݕࡧ͢ΔλΠϓͷΫΤϦ ΞφϩάλΠϓͳΫΤϦͱ͸ʁ
  11. 48 νϡʔχϯά w ΫΤϦʹରͯ͠είΞϦϯά w ঎඼໊΍ϒϥϯυɺΧςΰϦʹϒϥϯυʢΧςΰϦʣ໊͕ೖͬ ͍ͯΔ৔߹ͷ঎඼ͷείΞΛϒʔετ w ࣮ࡍ͸ϑΟʔϧυʹΑͬͯॏΈΛௐ੔ w

    λΠτϧͷείΞΛॏࢹɺ঎඼આ໌͸ϒʔετ͠ͳ͍ w ؔ࿈౓ͷ௿͍঎඼Λ଍੾Γ w NJO@TDPSFΦϓγϣϯʹ஋Λࢦఆ w ࢦఆͷ஋ΑΓείΞ͕௿͍঎඼͸ݕࡧ݁Ռʹදࣔͤ͞ͳ͍