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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Yuta Horii Yuta Horii
September 20, 2017

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

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

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

Avatar for Yuta Horii

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 ࢦఆͷ஋ΑΓείΞ͕௿͍঎඼͸ݕࡧ݁Ռʹදࣔͤ͞ͳ͍