Slide 1

Slide 1 text

Mroongaを   とある教育サービスで   導⼊入してみた話 株式会社ヒトメディア   @sasata299

Slide 2

Slide 2 text

⾃自⼰己紹介 • ささたつ   • ヒトメディア所属   • からあげエンジニア   • 技術ブログ

Slide 3

Slide 3 text

からあげ   美味しい

Slide 4

Slide 4 text

[PR]  本を出しました

Slide 5

Slide 5 text

Mroonga • Tritonnの後継プロダクト   • GroongaをMySQLから利利⽤用できるように したもの   • 参照ロックフリー

Slide 6

Slide 6 text

利利⽤用シーン • Classiという教育サービスにて   • コンテンツの検索索部分にMroongaを利利⽤用

Slide 7

Slide 7 text

採⽤用した理理由 • MySQL単体で全⽂文検索索を使える   • MySQL5.6.4からは標準で全⽂文検索索が可能になったが 事前にわかち書き等の処理理は必要   • データを更更新するとインデックスも即時反映   • わかりやすいし、MySQLなので運⽤用も楽

Slide 8

Slide 8 text

MeCabで形態素解析 • groonga-‐‑‒tokenizer-‐‑‒mecabをインストール   • テーブル作成時にコメントで  ”TokenMecab”   を指定する

Slide 9

Slide 9 text

実際のSQLは • MATCH(検索索するカラム)  AGAINST(“検索索 キーワード”  IN  BOOLEAN  MODE)   • 検索索したい⽂文字列列の前にPragmaという変な記 号を付ける

Slide 10

Slide 10 text

AND検索索が出来ない • 「foo  bar」とかで検索索すると、「foo」もし くは「bar」が含まれる結果が返ってくる。。 (OR検索索?) <発表後追記>   MySQLのデフォルトの挙動がORだから   +のPragmaが付かないとOR検索索になる

Slide 11

Slide 11 text

出来るようになったよ *D+ <発表後追記>   DはDefaultの略略(デフォルトの挙動を変える)

Slide 12

Slide 12 text

CIの環境構築でコケる • CircleCIで都度度都度度、Mroongaをインストール している   • MySQLのバージョンと、Mroongaの依存する MySQLパッケージのバージョンが違う!?

Slide 13

Slide 13 text

バージョンを指定

Slide 14

Slide 14 text

通るようになったよ

Slide 15

Slide 15 text

まとめ • Mroongaは全⽂文検索索を導⼊入したい!って いうときに簡単に実現できるので便便利利   • Pragmaのところが最初はちょっと??だ けど、そういうものだと思えば  

Slide 16

Slide 16 text

ご静聴ありがとう   ございました @sasata299