20151129_Mroongaをとある教育サービスで導入してみた話

865f591cd81499eb0512dd657f2f8316?s=47 Tatsuya Sasaki
November 29, 2015

 20151129_Mroongaをとある教育サービスで導入してみた話

良い肉の日(11/29)のGroonga Meetupで話したときの資料

865f591cd81499eb0512dd657f2f8316?s=128

Tatsuya Sasaki

November 29, 2015
Tweet

Transcript

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

  2. ⾃自⼰己紹介 • ささたつ   • ヒトメディア所属   • からあげエンジニア  

    • 技術ブログ
  3. からあげ   美味しい

  4. [PR]  本を出しました

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

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

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

      • わかりやすいし、MySQLなので運⽤用も楽
  8. MeCabで形態素解析 • groonga-‐‑‒tokenizer-‐‑‒mecabをインストール   • テーブル作成時にコメントで  ”TokenMecab”   を指定する

  9. 実際のSQLは • MATCH(検索索するカラム)  AGAINST(“検索索 キーワード”  IN  BOOLEAN  MODE)   •

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

    +のPragmaが付かないとOR検索索になる
  11. 出来るようになったよ *D+ <発表後追記>   DはDefaultの略略(デフォルトの挙動を変える)

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

  13. バージョンを指定

  14. 通るようになったよ

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

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