Slide 1

Slide 1 text

%FWFMPQFST*0 $ Ϋϥεϝιουגࣜձࣾɹ໦ށࠃ඙ ⡥$MBTTNFUIPE *OD ೥݄೔ &MBTUJDTFBSDIͰɺ ࣗ༝ࣗࡏʹݕࡧɾ෼ੳ Ͱ͖ΔΑ͏ʹͳΔͨΊͷώϯτ 

Slide 2

Slide 2 text

ࣗݾ঺հ  ⡥$MBTTNFUIPE *OD ໦ށࠃ඙! Ϋϥεϝιουגࣜձࣾɹ"84ίϯαϧςΟϯά෦ ೖࣾ̎̌೔໨ ੡඼։ൃνʔϜʹϓϩμΫτΦʔφʔͱ͍͏໾ׂͰ݄̎̍ ೔͔ΒδϣΠϯ͠·ͨ͠ɻ·ͩ·ͩΘ͔Βͳ͍͜ͱ͹͔ ΓͰ͕͢ΑΖ͓͘͠ئ͍͠·͢ɻN @@ N ϒϩάʮ)FMMP&MBTUJDTFBSDIʯ΋ΑΖ͓͘͠ئ͍͠·͢ ʲ޷͖ͳϓϩμΫτɺݴޠͳͲʳ

Slide 3

Slide 3 text

⡥$MBTTNFUIPE *OD  ΞδΣϯμ Α͋͘Δ೰Έ ݕࡧɾ෼ੳͷ࢓૊Έ "OBMZTJTϞδϡʔϧ ެࣜ"OBMZTJTϞδϡʔϧ ΧελϜ"OBMZ[FS "OBMZTJTͷίϯτϩʔϧ ݴޠॲཧύλʔϯ ϚϧνɾϑΟʔϧυ "1*T

Slide 4

Slide 4 text

&MBTUJDTFBSDIͰɺࣗ༝ࣗ ࡏʹݕࡧɾ෼ੳͰ͖ΔΑ͏ ʹͳΔͨΊͷώϯτ !

Slide 5

Slide 5 text

Α͋͘Δ೰Έ

Slide 6

Slide 6 text

⡥$MBTTNFUIPE *OD  ࢥͬͨΑ͏ʹ෼ੳ Ͱ͖ͳ͍ "

Slide 7

Slide 7 text

⡥$MBTTNFUIPE *OD  ࢥͬͨΑ͏ʹݕࡧ Ͱ͖ͳ͍ #

Slide 8

Slide 8 text

ݕࡧɾ෼ੳͷ࢓૊Έ

Slide 9

Slide 9 text

⡥$MBTTNFUIPE *OD  *OEFYJOHZPVSEBUB ݕࡧΤϯδϯ͸ɺݩͷσʔλΛͦͷ··อ ଘ͢ΔͷͰ͸ͳ͘ɺߴ଎ʹݕࡧͰ͖ΔΑ͏ ʹτʔΫϯ୯ҐͰΠϯσοΫεΛ࡞͍ͬͯ· ͢ɻ̍࡭ͷຊʹྫ͑ΔͳΒຊͷ຤ඌʹ͋Δࡧ ҾΛ࡞ΔΠϝʔδ ࡧҾ ೥   Ϋϥεϝιου     גࣜձࣾ      ςΫϊϩδʔ    %FWFMPQFST*0     l೥࠷৽ͷࣄྫ΍ςΫϊϩδʔ͕ Ұಊʹձ͢ΔΠϕϯτ%FWFMPQFST*0 ։࠵͕ܾఆʂz $

Slide 10

Slide 10 text

⡥$MBTTNFUIPE *OD  4FBSDIJOHZPVSEBUB ݕࡧͱ͸ɺ͋Β͔͡Ί࡞੒͞Ε͍ͯΔࡧҾʹ ରͯ͠ೖྗ͞ΕͨΩʔϫʔυ͕Ϛον͢Δυ Ωϡϝϯτநग़ͯ͠·͢ɻ (PPEʮ%FWFMPQFST*0ʯˠ'PVOE #BEʮEFWFMPQFSTʯˠ/PUGPVOE ࡧҾ ೥   Ϋϥεϝιου     גࣜձࣾ      ςΫϊϩδʔ    %FWFMPQFST*0     %FWFMPQFST*0      #

Slide 11

Slide 11 text

⡥$MBTTNFUIPE *OD  "OBMZ[JOHZPVSEBUB ࡧҾʢΠϯσοΫεʣͷτʔΫϯ͝ͱʹυ Ωϡϝϯτ਺Λूܭʢ5FSNT "HHSFHBUJPOʣ ͻΒ͕ͳ̍จࣈͰूܭ͞Εͯ͠·͏ͷ͸ɺࡧ ҾͻΒ͕ͳ̍จࣈͰ࡞ΒΕ͍ͯΔ͔Βɻ ࡧҾ ೥   Ϋϥεϝιου     גࣜձࣾ      ςΫϊϩδʔ    %FWFMPQFST*0     5FSN $PVOU גࣜձࣾ  Ϋϥεϝιου  %FWFMPQFST*0  ςΫϊϩδʔ  ೥  "

Slide 12

Slide 12 text

⡥$MBTTNFUIPE *OD  ώϯτ ݕࡧ΋෼ੳ΋ࡧҾʢΠϯσοΫεʣ ΛͲ͏࡞Δ͔͕ॏཁ

Slide 13

Slide 13 text

"OBMZTJTϞδϡʔϧ

Slide 14

Slide 14 text

⡥$MBTTNFUIPE *OD  \*OEFY^ \2VFSZ^ \%PDVNFOU^ */%&95*.& 4&"3$)5*.& "OBMZ[FS "OBMZ[FS͸ओʹೖྗ͞Εͨจࣈྻͷݴޠॲ ཧύΠϓϥΠϯॲཧΛఏڙ͠·͢ɻ ·ͨɺ"OBMZ[FSͰݴޠॲཧ͞ΕͨτʔΫϯ ୯ҐͰΠϯσοΫε͕࡞੒͞Ε·͢ɻ ΠϯσοΫεଆɿυΩϡϝϯτͷ಺༰ͷݴ ޠॲཧʹ࢖ΘΕ·͢ɻ αʔνଆɿݕࡧ࣌ͷೖྗΩʔϫʔυͷݴޠ ॲཧʹ࢖ΘΕ·͢ɻ "OBMZ[FS "OBMZ[FS $ #

Slide 15

Slide 15 text

⡥$MBTTNFUIPE *OD  "OBMZ[FSͷߏ੒ "OBMZ[FS͸ɺ$IBSBDUFS'JMUFSTɺ 5PLFOJ[FSɺ5PLFO'JMUFSTͷॲཧηοτ͔ Βߏ੒͞Ε͍ͯ·͢ɻ "OBMZ[FS͸ɺϑΟʔϧυ୯ҐʹॲཧΛ࣮ߦ ͠·͢ɻ \$IBSBDUFS'JMUFST^\5PLFOJ[FS^ \5PLFO'JMUFST^ 5{\^\^\^{\^{\^\^\^{5` %"OBMZ[FS 1JQFMJOF1SPDFTTJOH

Slide 16

Slide 16 text

⡥$MBTTNFUIPE *OD  $IBSBDUFS'JMUFST $IBSBDUFS'JMUFS͸ɺओʹจࣈྻʹର͢Δ ਖ਼نԽॲཧΛ୲౰͢ΔॲཧεςʔδͰ͢ɻ ̍ͭͷ"OBMZ[FSʹ̌ݸҎ্ͷෳ਺ͷ $IBSBDUFS'JMUFSΛઃఆՄೳɻ ύΠϓϥΠϯͰॲཧ͞ΕΔͨΊͷॱ൪ʹ஫ҙ 5{ \^\^\^ {\^{\^\^\^{5` 1JQFMJOF1SPDFTTJOH \$IBSBDUFS'JMUFST^\5PLFOJ[FS^ \5PLFO'JMUFST^ lI̎̌̍̒೥࠷৽ͷࣄྫ΍ũŞůƁŢƄŖ͕Ұಊʹձ͢ΔŘųƄƃŪ%FWFMPQFST ̞̤։࠵͕ܾఆʂIz l೥࠷৽ͷࣄྫ΍ςΫϊϩδʔ͕Ұಊʹձ͢ΔΠϕϯτ %FWFMPQFST*0։࠵͕ܾఆʂz ਖ਼نԽ %"OBMZ[FS

Slide 17

Slide 17 text

⡥$MBTTNFUIPE *OD  5PLFOJ[FS 5PLFOJ[FS͸$IBSBDUFS'JMUFSTͰॲཧ͞ ΕͨจࣈྻΛτʔΫϯԽ͢ΔͨΊͷॲཧε ςʔδͰ͢ɻ ̍ͭͷ"OBMZ[FSʹ̍ͭͷ"OBMZ[FSΛࢦఆ Մೳ 5{\^\^\^{ \^ {\^\^\^{5` 1JQFMJOF1SPDFTTJOH \$IBSBDUFS'JMUFST^\5PLFOJ[FS^ \5PLFO'JMUFST^ l೥࠷৽ͷࣄྫ΍ςΫϊϩδʔ͕Ұಊʹձ͢ΔΠϕϯτ %FWFMPQFST*0։࠵͕ܾఆʂz lz l೥z l࠷৽z lͷz lࣄྫz l΍z lςΫϊϩδʔz l͕zlҰಊz lʹz  lձz l͢Δz lΠϕϯτz l%FWFMPQFSTz l*0z lz l։࠵z l͕z lܾఆz τʔΫϯԽ %"OBMZ[FS

Slide 18

Slide 18 text

⡥$MBTTNFUIPE *OD  5PLFO'JMUFST 5PLFO'JMUFS͸ɺ5PLFOJ[FSͰॲཧ͞Εͨ τʔΫϯΛ͞ΒʹՃ޻͢ΔͨΊͷॲཧεςʔ δͰ͢ɻ ̍ͭͷ"OBMZ[FSʹ̌ݸҎ্ͷෳ਺ͷ 5PLFO'JMUFSΛઃఆՄೳɻ ύΠϓϥΠϯͰॲཧ͞ΕΔͨΊͷॱ൪ʹ஫ҙ 5{\^\^\^{\^{ \^\^\^ {5` 1JQFMJOF1SPDFTTJOH \$IBSBDUFS'JMUFST^\5PLFOJ[FS^ \5PLFO'JMUFST^ lz l೥z l࠷৽z lͷz lࣄྫz l΍z lςΫϊϩδʔz l͕zlҰಊz lʹz  lձz l͢Δz lΠϕϯτz l%FWFMPQFSTz l*0z lz l։࠵z l͕z lܾఆz lz l࠷৽z lࣄྫz lςΫϊϩδʔz lҰಊz lΠϕϯτz l%FWFMPQFSTz  l*0z lz l։࠵z lܾఆz Ճ޻ %"OBMZ[FS

Slide 19

Slide 19 text

⡥$MBTTNFUIPE *OD  ώϯτ "OBMZ[FS͸ϑΟʔϧυ୯ҐͰॲཧ ͞ΕΔ ΠϯσοΫεଆͱαʔνଆͰҟͳΔ "OBMZ[FS͕ඞཁʹͳΔέʔε΋͋ Δ

Slide 20

Slide 20 text

ެࣜ"OBMZTJTϞδϡʔϧ

Slide 21

Slide 21 text

⡥$MBTTNFUIPE *OD   "OBMZ[FST  TUBOEBSE  TJNQMF  XIJUFTQBDF  TUPQ  LFZXPSE  QBUUFSO  TOPXCBMM  BSBCJD MBOHVBHF   BSNFOJBO MBOHVBHF  CBTRVF MBOHVBHF  CSB[JMJBO MBOHVBHF  CVMHBSJBO MBOHVBHF  DBUBMBO MBOHVBHF  DKL MBOHVBHF  D[FDI MBOHVBHF  EBOJTI MBOHVBHF  EVUDI MBOHVBHF  FOHMJTI MBOHVBHF  pOOJTI MBOHVBHF  GSFODI MBOHVBHF  HBMJDJBO MBOHVBHF  HFSNBO MBOHVBHF  HSFFL MBOHVBHF  IJOEJ MBOHVBHF  IVOHBSJBO MBOHVBHF  JOEPOFTJBO MBOHVBHF  JSJTI MBOHVBHF  JUBMJBO MBOHVBHF  MBUWJBO MBOHVBHF  MJUIVBOJBO MBOHVBHF  OPSXFHJBO MBOHVBHF  QFSTJBO MBOHVBHF  QPSUVHVFTF MBOHVBHF  SPNBOJBO MBOHVBHF  SVTTJBO MBOHVBHF  TPSBOJ MBOHVBHF  TQBOJTI MBOHVBHF  TXFEJTI MBOHVBHF  UVSLJTI MBOHVBHF  UIBJ MBOHVBHF  LVSPNPKJ BOBMZTJTLVSPNPKJ  QPMJTI BOBMZTJTTUFNQFM  TNBSUDO BOBMZTJTTNBSUDO

Slide 22

Slide 22 text

⡥$MBTTNFUIPE *OD   $IBSBDUFS 'JMUFST  NBQQJOH  IUNM@TUSJQ  QBUUFSO@SFQMBDF  LVSPNPKJ@JUFSBUJPO@NBSL BOBMZTJTLVSPNPKJ   JDV@OPSNBMJ[FS BOBMZTJTJDV

Slide 23

Slide 23 text

⡥$MBTTNFUIPE *OD   5PLFO'JMUFST  TUBOEBSE  BTDJJGPMEJOH  MFOHUI  MPXFSDBTF  VQQFSDBTF  O(SBN  FEHF/(SBN  QPSUFS@TUFN  TIJOHMF TUPQ XPSE@EFMJNJUFS TUFNNFS TUFNNFS@PWFSSJEF LFZXPSE@NBSLFS LFZXPSE@SFQFBU LTUFN TOPXCBMM QIPOFUJD TZOPOZN IZQIFOBUJPO@EFDPNQPV OEFS EJDUJPOBSZ@EFDPNQPVOE FS SFWFSTF FMJTJPO USVODBUF VOJRVF QBUUFSO@DBQUVSF QBUUFSO@SFQMBDF USJN MJNJU IVOTQFMM DPNNPO@HSBNT BSBCJD@OPSNBMJ[BUJPO HFSNBO@OPSNBMJ[BUJPO IJOEJ@OPSNBMJ[BUJPO JOEJD@OPSNBMJ[BUJPO TPSBOJ@OPSNBMJ[BUJPO QFSTJBO@OPSNBMJ[BUJPO TDBOEJOBWJBO@OPSNBMJ[B UJPO TDBOEJOBWJBO@GPMEJOH TFSCJBO@OPSNBMJ[BUJPO OPUSFMFBTFEZFU  DKL@XJEUI DKL@CJHSBN EFMJNJUFE@QBZMPBE@pMUFS LFFQ LFFQ@UZQFT DMBTTJD BQPTUSPQIF EFDJNBM@EJHJU QIPOFUJD BOBMZTJT QIPOFUJD  LVSPNPKJ@UPLFOJ[FS BOBMZTJTLVSPNPKJ  LVSPNPKJ@CBTFGPSN BOBMZTJTLVSPNPKJ  LVSPNPKJ@QBSU@PG@TQFFD I BOBMZTJTLVSPNPKJ  LVSPNPKJ@SFBEJOHGPSN BOBMZTJTLVSPNPKJ  LVSPNPKJ@TUFNNFS BOBMZTJTLVSPNPKJ  KB@TUPQ BOBMZTJT LVSPNPKJ  QPMJTI@TUFN BOBMZTJT TUFNQFM  TNBSUDO@XPSE BOBMZTJTTNBSUDO  TNBSUDO@TFOUFODF BOBMZTJTTNBSUDO  JDV@OPSNBMJ[FS BOBMZTJTJDV  JDV@GPMEJOH BOBMZTJT JDV  JDV@DPMMBUJPO BOBMZTJT JDV  JDV@USBOTGPSN BOBMZTJT JDV

Slide 24

Slide 24 text

⡥$MBTTNFUIPE *OD  5PUBM

Slide 25

Slide 25 text

⡥$MBTTNFUIPE *OD  ώϯτ ඞཁͳ"OBMZTJT͸΄ͱΜͲἧͬͯ Δ ΄ͱΜͲͷެࣜ"OBMZTJTϞδϡʔ ϧ͸ઃఆΛΧελϚΠζՄೳ

Slide 26

Slide 26 text

ΧελϜ"OBMZ[FS

Slide 27

Slide 27 text

⡥$MBTTNFUIPE *OD ΧελϜ"OBMZ[FSͱ͸ʁ 5PLFOJ[FS΍$IBSBDUFSpMUFSTɺ5PLFOpMUFSTΛ૊Έ߹Θͤͯɺಠࣗͷݕࡧཁ ݅΍ɺ෼ੳཁ݅Λ࣮ݱ͢ΔͨΊͷ"OBMZ[FSΛఆٛ͢Δ࢓૊ΈͰ͢ɻ  PUT /my_index { "settings": { "analysis": { "char_filter": { ... custom character filters ... }, "tokenizer": { ... custom tokenizers ... }, "filter": { ... custom token filters ... }, "analyzer": { ... custom analyzers ... } } } }

Slide 28

Slide 28 text

⡥$MBTTNFUIPE *OD ΧελϜ"OBMZ[FSͷఆٛɾద༻ɾ࣮ߦ  *OEFY 5ZQF .BQQJOH 5ZQF .BQQJOH %PD %PD %PD %PD 'JFME 'JFME 'JFME 'JFME 'JFME 'JFME 'JFME 'JFME ఆٛ ద༻ ࣮ߦ ˞/PEFϨϕϧͰ΋ఆٛՄೳͰ͕͢ɺجຊతʹ͸*OEFYϨϕϧͰఆٛ͠·͠ΐ͏ɻ

Slide 29

Slide 29 text

⡥$MBTTNFUIPE *OD  ώϯτ ΧελϜ"OBMZ[FS͸"OBMZTJT ϞδϡʔϧΛࣗ༝ʹ૊ΈΘͤͯઃఆ Ͱ͖Δ ·ͣ͸ɺެࣜ"OBMZTJTϞδϡʔϧ ͚ͩͰΧελϜ"OBMZ[FSΛઃܭ ΠϯσοΫεϨϕϧͰఆٛ͢Δ ϓϥάΠϯͷ։ൃ͸࠷ऴखஈ

Slide 30

Slide 30 text

"OBMZTJTͷίϯτϩʔϧ

Slide 31

Slide 31 text

⡥$MBTTNFUIPE *OD "OBMZ[FSܾఆϑϩʔ  45&1.BQQJOHͰఆٛ͞ΕͨJOEFY@BOBMZ[FS Y 45&1%PDVNFOUͰఆٛ͞Εͨ@BOBMZ[FS Y 45&15ZQFͰఆٛ͞ΕͨJOEFY@BOBMZ[FS Y 45&1*OEFYͰఆٛ͞ΕͨEFGBVMU@JOEFY Y 45&14UBOEBSE"OBMZ[FS 45&1.BQQJOHͰఆٛ͞ΕͨBOBMZ[FS 45&15ZQFͰఆٛ͞ΕͨBOBMZ[FS Y 45&1*OEFYͰఆٛ͞ΕͨEFGBVMU 45&1/PEFͰఆٛ͞ΕͨEFGBVMU@JOEFY Y 45&1/PEFͰఆٛ͞ΕͨEFGBVMU 45&12VFSZͰ໌ࣔతʹࢦఆ͞ΕͨBOBMZ[FS 45&15ZQFͰఆٛ͞ΕͨTFBSDI@BOBMZ[FS Y 45&1*OEFYͰఆٛ͞ΕͨEFGBVMU@TFBSDI 45&14UBOEBSE"OBMZ[FS 45&1.BQQJOHͰఆٛ͞ΕͨTFBSDI@BOBMZ[FS 45&15ZQFͰఆٛ͞ΕͨBOBMZ[FS Y 45&1*OEFYͰఆٛ͞ΕͨEFGBVMU 45&1/PEFͰఆٛ͞ΕͨEFGBVMU@TFBSDI 45&1/PEFͰఆٛ͞ΕͨEFGBVMU 45&1.BQQJOHͰఆٛ͞ΕͨBOBMZ[FS JOEFYUJNF TFBSDIUJNF 74

Slide 32

Slide 32 text

⡥$MBTTNFUIPE *OD  {Full text queries} {Term level queries} VS

Slide 33

Slide 33 text

⡥$MBTTNFUIPE *OD  'VMMUFYURVFSJFT 'VMMUFYURVFSJFT͸ɺ"OBMZ[FSܾఆϑϩʔ ʹैܾͬͯఆ͞Εͨ"OBMZ[FSʹΑͬͯݴޠ ॲཧ͞Ε·͢ɻ \JOEFY^ \'VMMUFYURVFSJFT^ "OBMZ[F NBUDIRVFSZ NVMUJ@NBUDIRVFSZ DPNNPO@UFSNTRVFSZ RVFSZ@TUSJOHRVFSZ TJNQMF@RVFSZ@TUSJOH { "match" : {"user" : “Developers.IO"} } %FWFMPQFST*0 EFWFMPQFSTJP

Slide 34

Slide 34 text

⡥$MBTTNFUIPE *OD  5FSNMFWFMRVFSJFT 5FSNMFWFMRVFSJFT͸ɺ"OBMZ[FSܾఆϑ ϩʔ͸ແࢹ͞Εɺݴޠॲཧ͸͞Ε·ͤΜɻ \*OEFY^ \5FSNMFWFMRVFSJFT^ /PU"OBMZ[F UFSNRVFSZ UFSNTRVFSZ SBOHFRVFSZ FYJTUTRVFSZ NJTTJOHRVFSZ QSFpYRVFSZ XJMEDBSERVFSZ SFHFYQRVFSZ GV[[ZRVFSZ UZQFRVFSZ JETRVFSZ { "term" : { "user" : “Developers.IO" } } %FWFMPQFST*0 %FWFMPQFST*0

Slide 35

Slide 35 text

⡥$MBTTNFUIPE *OD  ώϯτ "OBMZ[FS͸.BQQJOHϨϕϧͰ ໌ࣔతʹઃఆ σϑΥϧτ"OBMZ[FS͸*OEFYϨ ϕϧͰઃఆ

Slide 36

Slide 36 text

ݴޠॲཧύλʔϯ

Slide 37

Slide 37 text

⡥$MBTTNFUIPE *OD  /PU"OBMZ[FE ڀۃ͸෼ੳ͠ͳ͍ ·ͣ͸ɺOPU@BOBMZ[FE͕ઃఆՄೳ͔ݕ౼͠ ·͠ΐ͏ɻ

Slide 38

Slide 38 text

⡥$MBTTNFUIPE *OD  4UBOEBSE "OBMZ[FS σϑΥϧτΞφϥΠβʔ ϤʔϩούܥݴޠΛݕࡧ͢ΔͨΊͷΞφϥ ΠβʔͰ͢ɻ ೔ຊޠ΋ҰԠݕࡧ͢Δ͜ͱ͸Ͱ͖·͕͢ɺ ׽ࣈɾͻΒ͕ͳ͸6OJHSBNͰΠϯσοΫε ͞ΕΔͨΊɺݕࡧ݁Ռͷద߹཰͸Լ͕Δ܏ ޲ʹ͋Γ·͢ɻΧλΧφ͸۠੾ΒΕͳ͍ͨΊ ࠶ݱ཰͕Լ͕Δ܏޲

Slide 39

Slide 39 text

⡥$MBTTNFUIPE *OD  ύολʔϯநग़ ྫ͑͹ɺ63-ͷσʔλϑΟʔϧυΛ࢖ͬͯɺυϝΠϯ ໊Ͱूܭ͍ͨ͠ lIUUQDMBTTNFUIPEKQDPNQBOZl lDMBTTNFUIPEKQz ਖ਼نදݱͰύολʔϯநग़

Slide 40

Slide 40 text

⡥$MBTTNFUIPE *OD  Ϛοϐϯά ྫ͑͹ɺ౎ಓ෎ݝ໊Λؔ౦ͳͲΤϦΞͰूܭ͍ͨ͠ l౦ژ౎l lؔ౦z ܾ·ͬͨ୯ޠͰஔ͖׵͑

Slide 41

Slide 41 text

⡥$MBTTNFUIPE *OD  ܗଶૉղੳ ྫ͑͹ɺ೔ຊޠΛର৅ʹͨ͠ݕࡧͰɺద߹཰Λ޲্͠ ͍ͨ l೥࠷৽ͷࣄྫ΍ςΫϊϩδʔ͕Ұಊ ʹձ͢ΔΠϕϯτ%FWFMPQFST*0։ ࠵͕ܾఆʂz lz l೥z l࠷৽z lࣄྫz lςΫϊϩ δʔz lҰಊz lձz l͢Δz lΠϕϯτz  l%FWFMPQFSTz l*0z lz l։࠵z lܾ ఆz ೔ຊޠͷ୯ޠ୯ҐʹτʔΫϯԽ

Slide 42

Slide 42 text

⡥$MBTTNFUIPE *OD  /(SBN ྫ͑͹ɺ೔ຊޠΛର৅ʹͨ͠ݕࡧͰɺ࠶ݱ཰Λ޲্͠ ͍ͨ l೥࠷৽ͷࣄྫ΍ςΫϊϩδʔ͕Ұಊ ʹձ͢ΔΠϕϯτ%FWFMPQFST*0։ ࠵͕ܾఆʂz    ೥ ೥࠷ ࠷৽ ৽ ͷ ͷࣄ ྫ΍ ΍ς ςΫ Ϋϊ  ϊϩ ϩδ δʔ ʔ͕ ͕Ұ Ұಊ  ಊʹ ʹձ ձ͢ ͢Δ ΔΠ Πϕ  ϕϯ ϯτ ϯE EF FW WF  FM MP PQ QF FS ST T J  JP J    ։ ։࠵  ࠵͕ ͕ܾ ܾఆ /จࣈ୯ҐʹτʔΫϯԽ

Slide 43

Slide 43 text

⡥$MBTTNFUIPE *OD  $+,#JHSBN ྫ͑͹ɺӳɾ਺ࣈࠞ͡Γͷ೔ຊޠͷจষΛର৅ʹɺӳɾ ਺ࣈͷݕࡧͷద߹཰͸Լ͛ͣʹɺ೔ຊޠʢͻΒͳ͕ͳɺ ΧλΧφɺ׽ࣈʣͷ࠶ݱ཰Λ޲্͍ͤͨ͞ l೥࠷৽ͷࣄྫ΍ςΫϊϩδʔ͕Ұಊ ʹձ͢ΔΠϕϯτ%FWFMPQFST*0։ ࠵͕ܾఆʂz  ೥࠷ ࠷৽ ৽ͷ ͷࣄ ྫ ΍ ΍ς ςΫ Ϋϊ ϊϩ ϩδ  δʔ ʔ͕ ͕Ұ Ұಊ ಊʹ ʹձ  ձ͢ ͢Δ ΔΠ Πϕ ϕϯ ϯτ  EFWFMPQFSTJP  ։࠵ ࠵͕  ͕ܾ ܾఆ $+,ͷΈ/จࣈ୯ҐʹτʔΫϯԽ

Slide 44

Slide 44 text

⡥$MBTTNFUIPE *OD  &EHF/(SBN ྫ͑͹ɺΩʔϫʔυ΍੡඼໊ͳͲଟগͷ༳Β͗Λٵऩ ͭͭ͠લํҰகͰݕࡧ͍ͨ͠ɻʢΩʔϫʔυαδΣε τʣ l%FWFMPQFST*0z E EF EFW EFWF EFWFM  EFWFMP EFWFMPQ EFWFMPQF  EFWFMPQFS EFWFMPQFST  EFWFMPQFST EFWFMPQFSTJ  EFWFMPQFSTJP EFWFMPQFSTJP  EFWFMPQFSTJP EFWFMPQFSTJP  EFWFMPQFSTJP EFWFMPQFSTJP  ࢦఆൣғͷจࣈ਺ͰτʔΫϯԽ

Slide 45

Slide 45 text

⡥$MBTTNFUIPE *OD  5PLFO/(SBN ྫ͑͹ɺ୯ޠͷ૊Έ߹ΘͤΛநग़͍ͨ͠ l೥࠷৽ͷࣄྫ΍ςΫϊϩδʔ͕Ұಊ ʹձ͢ΔΠϕϯτ%FWFMPQFST*0։ ࠵͕ܾఆʂz ࠷৽ࣄྫ ࣄྫςΫϊϩδʔ ςΫϊ ϩδʔҰಊ Ұಊձ ձΠϕϯτ Π ϕϯτEFWFMPQFST EFWFMPQFSTJP τʔΫϯΛϑϨʔζԽ

Slide 46

Slide 46 text

⡥$MBTTNFUIPE *OD  ύολʔϯநग़ ྫ͑͹ɺ63-ͷσʔλϑΟʔϧυΛ࢖ͬͯɺυϝΠϯ ໊͔Β೔ຊޠձ໊ࣾͰूܭද͍ࣔͨ͠ lIUUQDMBTTNFUIPEKQDPNQBOZl lDMBTTNFUIPEKQz ਖ਼نදݱͰύολʔϯநग़ Ϛοϐϯά ܾ·ͬͨ୯ޠͰஔ͖׵͑ lΫϥεϝιουגࣜձࣾz

Slide 47

Slide 47 text

⡥$MBTTNFUIPE *OD  &EHF/(SBN ྫ͑͹ɺ೔ຊޠͷจষʹରͯ͠Πϯελϯτݕࡧͨ͠ ͍ɻʢ(PPHMFͷΠϯελϯτݕࡧʣ l೥࠷৽ͷࣄྫ΍ςΫϊϩδʔ͕Ұಊ ʹձ͢ΔΠϕϯτ%FWFMPQFST*0։ ࠵͕ܾఆʂz     ࠷ ࠷৽ ࣄ  ࣄྫ ς ςΫ ςΫϊ ςΫϊϩ  ςΫϊϩδ ςΫϊϩδʔ Ұ Ұಊ  ձ Π Πϕ Πϕϯ lΠϕϯτz ୯ޠ͝ͱʹࢦఆൣғͷจࣈ਺ͰτʔΫϯԽ ܗଶૉղੳ ܗଶૉղੳͯ͠୯ޠ୯ҐʹτʔΫϯԽ

Slide 48

Slide 48 text

⡥$MBTTNFUIPE *OD  5PLFO/(SBN ྫ͑͹ɺ೔ຊޠͷίϯςϯπ͔ΒϑϨʔζΛநग़ͯ͠ ͦΕΛΩʔϫʔυαδΣετͰ࢖͍͍ͨ l೥࠷৽ͷࣄྫ΍ςΫϊϩδʔ͕Ұಊ ʹձ͢ΔΠϕϯτ%FWFMPQFST*0։ ࠵͕ܾఆʂz ࠷ ࠷৽ ࠷৽ ࠷৽ࣄ ࠷৽ࣄྫ  ࣄ ࣄྫ ࣄྫς ࣄྫςΫ ࣄ ྫςΫϊ ࣄྫςΫϊϩ ࣄྫςΫϊ ϩδ ࣄྫςΫϊϩδʔz  ϑϨʔζΛࢦఆൣғͷจࣈ਺ͰτʔΫϯԽ ܗଶૉղੳ &EHF/(SBN ܗଶૉղੳͰ୯ޠ୯ҐʹτʔΫϯΜԽ ୯ޠΛϑϨʔζ୯ʹτʔΫϯԽ

Slide 49

Slide 49 text

⡥$MBTTNFUIPE *OD  ΫϥελϦϯά ྫ͑͹ɺෳ਺ͷଐੑͷ஋Λ࢖ͬͯυΩϡϝϯτΛΫϥ ελϦϯά͍ͨ͠ \2VFSJFT^ \%PDVNFOU^ 1FSDPMBUF"1* ݕࡧ৚݅Λࣄલʹొ࿥͓͖ͯ͠ɺ೚ҙͷυΩϡϝϯ τʹϚον͢Δݕࡧ৚݅Λநग़͢Δಛघͳ࢓૊Έ SFRVFTU NBUDIRVFSJFT NFUB

Slide 50

Slide 50 text

⡥$MBTTNFUIPE *OD  ώϯτ σʔλͷ಺༰Λ೺Ѳ ݕࡧɾ෼ੳཁ݅Λ೺Ѳ ·ͣ͸OPU@BOBMZ[FEઃఆՄೳ͔Ͳ ͏͔ݕ౼ ݴޠॲཧύλʔϯΛϕʔεʹߟ͑Δ ݴޠॲཧύλʔϯͷ૊Έ߹ΘͤͯΈΔ

Slide 51

Slide 51 text

ϚϧνɾϑΟʔϧυ

Slide 52

Slide 52 text

.VMUJ'JFME ⡥$MBTTNFUIPE *OD ϚϧνɾϑΟʔϧυ  UJUMF ܗଶૉղੳ"OBMZ[FS UJUMFTZOPOZN ܗଶૉղੳ 4ZOPOZN "OBMZ[FS UJUMFTVCTUSJOH /(SBN"OBMZ[FS UJUMFUPQJD τϐοΫநग़"OBMZ[FS ݩσʔλͷεΩʔϚΛมߋͤͣʹ༻్ͷҟͳΔ"OBMZ[FSΛಉ ͡ϑΟʔϧυʹରͯ͠ෳ਺ఆٛ͢Δ͜ͱ͕Ͱ͖Δ࢓૊Έ

Slide 53

Slide 53 text

⡥$MBTTNFUIPE *OD ϚϧνɾϑΟʔϧυͷఆٛྫ  PUT /my_index { "mappings": { "posts": { "properties": { "name": { "type": "string", "analyzer": "ja_analyzer", "fields": { "synonym": { "type": "string", "search_analyzer": "ja_analyzer", "analyzer": "ja_synonym_analyzer" }, "substring": { "type": "string", "analyzer": "substring_analyzer" }, "topic": { "type": "string", "search_analyzer": "keyword", "analyzer": "topic_analyzer" } } } } } } } ϚϧνɾϑΟʔϧυ

Slide 54

Slide 54 text

⡥$MBTTNFUIPE *OD  ώϯτ ݩυΩϡϝϯτͷߏ଄Λมߋ͢Δલ ʹϚϧνɾϑΟʔϧυͰରԠՄೳ͔ ݕ౼ ϚϧνɾϑΟʔϧυͷ໊শΛඪ४Խ

Slide 55

Slide 55 text

"1*T

Slide 56

Slide 56 text

*OEJDFT"1*T 

Slide 57

Slide 57 text

⡥$MBTTNFUIPE *OD *OEFY5FNQMBUFT"1* *OEFYΛ࡞੒͢ΔࡍͷςϯϓϨʔτͷ؅ཧΛ͢ΔͨΊͷ"1*Ͱ͢ɻ $VTUPN"OBMZ[FSͷఆٛ΍.BQQJHOఆٛͳͲ͸ɺ*OEFY5FNQMBUFT"1*Λ࢖ͬͯςϯϓ Ϩʔτొ࿥͓ͯ͘͠ͱɺΠϯσοΫε࡞੒࣌ʹ͍͍ͪͪઃఆΛ͠ͳͯ͘΋ྑ͍ͷͰศརͰ͢ɻ  PUT /_template/item_index_template { "template": "item*", "settings": { "analysis": { "char_filter": { ... custom character filters ... }, "tokenizer": { ... custom tokenizers ... }, "filter": { ... custom token filters ... }, "analyzer": { ... custom analyzers ... } } }, "mappings": { ... field mappings ...} }

Slide 58

Slide 58 text

⡥$MBTTNFUIPE *OD "OBMZ[F"1* ೚ҙͷจষΛ࢖ͬͯɺ"OBMZ[F͢Δ͜ͱ͕Ͱ͖Δ"1*Ͱ͢ɻ$VTUPN "OBMZ[FSΛઃఆͨ͠ࡍʹɺσʔλΛΠϯσοΫε͠ͳͯ͘΋ɺ͜ͷ"1* Λ࢖ͬͯ͋Δఔ౓ݕূ͢Δ͜ͱ͕Ͱ͖·͢ɻ  POST /my_index/_analyze?analyzer=standard Hello! Elasticsearch { "tokens": [ { "token": "hello", "start_offset": 0, "end_offset": 5, "type": "", "position": 0 }, { "token": "elasticsearch", "start_offset": 7, "end_offset": 20, "type": "", "position": 1 } ] SFRVFTU SFTVMU

Slide 59

Slide 59 text

⡥$MBTTNFUIPE *OD (FU4FUUJOHT"1* ΠϯσοΫεͷઃఆ৘ใΛऔಘ͢ΔͨΊͷ"1*Ͱ͢ɻ$VTUPN "OBMZ[FSͳͲͷఆٛ৘ใΛऔಘ͢Δ͜ͱ͕Ͱ͖·͢ɻ  GET /my_index/_settings { "my_index": { "settings": { "index": { "creation_date": "1455756138471", "number_of_shards": "5", "number_of_replicas": "1", "uuid": "PQ0f-0MlTtagrs- HeJHZ6Q", "version": { "created": "2020099" } } } } } SFRVFTU SFTVMU

Slide 60

Slide 60 text

⡥$MBTTNFUIPE *OD (FU.BQQJOH(FU'JFME.BQQJOH"1* ݱࡏઃఆ͞Ε͍ͯΔ.BQQJHఆٛΛऔಘ͢ΔͨΊͷ"1*Ͱ͢ɻϑΟʔϧυ ͷܕ΍ਖ਼͍͠"OBMZ[FS͕ઃఆ͞Ε͍ͯΔ͔ͳͲ֬ೝ͢Δ͜ͱ͕Ͱ͖·͢ɻ  GET /my_index/_mapping/my_type { "my_index": { "mappings": { "my_type": { "properties": { "user": { "type": "string" } } } } } } SFTVMU SFRVFTU

Slide 61

Slide 61 text

4FBSDI"1*T 

Slide 62

Slide 62 text

⡥$MBTTNFUIPE *OD 7BMJEBUF"1*1SPpMF"1* 2VFSZ͕ਖ਼͍͠ॻࣜԽͲ͏͔ʁ·ͨɺΩʔϫʔυ͕ͲͷΑ͏ʹ"OBMZ[F ͞Εͯݕࡧ͍ͯ͠Δͷ͔ͳͲͷ৘ใΛऔಘ͢Δ͜ͱ͕Ͱ͖Δ"1*Ͱ͢ɻ  POST /my_index/my_type/_validate/query? explain=true { "query": { "match": { "user": "Kimchy" } } } { "valid": true, "_shards": { "total": 1, "successful": 1, "failed": 0 }, "explanations": [ { "index": "my_index", "valid": true, "explanation": "+user:kimchy #ConstantScore(+ConstantScore(_type:data))" } ] } SFRVFTU SFTVMU

Slide 63

Slide 63 text

⡥$MBTTNFUIPE *OD &YQMBJO"1* ೚ҙͷυΩϡϝϯτʹରͯ͠ɺ2VFSZ͕ͲͷΑ͏ʹϚον͍ͯ͠Δ͔ͳ Ͳͷ৘ใΛऔಘ͢Δ͜ͱ͕Ͱ͖·͢ɻ  POST /my_index/my_type/1/_explain { "query": { "match": { "user": "Kimchy" } } } { "_index": "my_index", "_type": "my_type", "_id": "1", "matched": true, "explanation": { "value": 0.5945348, "description": "sum of:", "details": [ { "value": 0.5945348, "description": "weight(user:kimchy in 0) [PerFieldSimilarity], result of:", "details": [ { "value": 0.5945348, SFTVMU SFRVFTU

Slide 64

Slide 64 text

⡥$MBTTNFUIPE *OD  ώϯτ ͍Ζ͍Ζศརͳ"1*Λ׆༻ "OBMZ[FSͷݕূ͸σʔλΛΠϯ σοΫε͠ͳͯ͘΋ݕূͰ͖Δ

Slide 65

Slide 65 text

·ͱΊ

Slide 66

Slide 66 text

⡥$MBTTNFUIPE *OD ·ͱΊ w ެࣜͷ"OBMZTJTϞδϡʔϧͷ೺Ѳ w ϓϥάΠϯΛ։ൃ͢Δ͜ͱ΋Ͱ͖·͕͢ɺ·ͣ͸ެࣜͷ"OBMZTJTϞδϡʔϧΛ૊Έ߹Θ࣮ͤͯݱ Մೳ͔ݕ౼͍ͯͩ͘͠͞ɻ w σʔλͷ಺༰ͱݕࡧɾ෼ੳχʔζͷ೺Ѳ w ͜Ε͕ͳ͍ͱઃܭͰ͖·ͤΜɻ w কདྷతͳχʔζ΋ؚΊͯઃܭͰ͖Δͱͳ͓ྑ͍Ͱ͢ɻ w ݴޠॲཧύλʔϯͷཧղ w ݴޠॲཧύλʔϯΛϕʔεʹɺ͋ͱ͸ϑΟϧλʔͳͲͰݸผʹ੍౓Λ্͍͖͛ͯ·͠ΐ͏ɻ w ςϯϓϨʔτԽ w ࢖༻͢ΔΧελϜ"OBMZ[FS΍.BQQJOHఆٛ͸ςϯϓϨʔτԽͯ͠࢖͍·ΘͤΔΑ͏ʹ͠·͠ΐ ͏ɻ w "1*Λ࢖͍͜ͳ͢ w ͍Ζ͍Ζ"1*͕͋ΔͷͰɺ͜ΕΒΛ࢖ͬͯઃܭɾݕূΛޮ཰Խ͠·͠ΐ͏ɻ 

Slide 67

Slide 67 text

ࠂ஌

Slide 68

Slide 68 text

⡥$MBTTNFUIPE *OD ࠂ஌ 

Slide 69

Slide 69 text

%FWFMPQFST*0 ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ εϥΠυ͸ޙ೔ϒϩάͰެ։͠·͢ɻ  $ ⡥$MBTTNFUIPE *OD #cmdevio2016