More Related Content
gumiStudy#1 ソーシャルアプリにおけるKVSの利用事例 _gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹 ゲーム攻略サイトを網羅的に収集し、攻略情報を集約する Viewers also liked (18)
Media a2 music video pitch Pitch For Media As Coursework 20121019 engineer startup_meeting The Retcambio Organizacional(Ctc) Teoria de las obvias realidades Taller 7 Disciplinas de la preparacion Representation And The Gaze Similar to 20121123 groonga nanapi (20)
脱コピペ!デザイナーにもわかるPHPとWP_Query pixiv サイバーエージェント共同勉強会 solr導入記 いろいろ考えると日本語の全文検索もMySQLがいいね! 実践!Elasticsearch + Sudachi を用いた全文検索エンジン 20110517 okuyama ソーシャルメディアが育てた技術勉強会 人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ slide share 20110519 okuyama tokyo_linuxstudy Web エンジニアが postgre sql を選ぶ 3 つの理由 20121123 groonga nanapi
- 1. groonga を囲む夕べ
- nanapi 利用事例 -
- nanapi 利用事例 -
株式会社 nanapi CTO 和田修一
shuichi.wada@nanapi.co.jp
- 2. 本日のアジェンダ
自己紹介
活用事例
• サイト内検索として利用
• 検索のサジェストとして利用
困ったこと&ほしい機能
- 3. 自己紹介
名前
和田修一 (わだっぷ)
所属
株式会社 nanapi 取締役 CTO
BLOG
Unix 的なアレ - http://d.hatena.ne.jp/wadap/
- 4. nanapi ご存知ですか?
リリース : 2009 年 9 月
月間 UU : 1700 万
月間 PV : 5000 万
記事数 : 50000 件
- 5. mroonga 導入
mroonga 導入 2012 年 4 月
2012 年 4 月
Tritonn 導入
Tritonn 導入 2010 年 3 月
2010 年 3 月
検索なんてできなかった
検索なんてできなかった 2009 年 9 月
2009 年 9 月
いままでの検索エンジンの経緯
- 6. 利用方法
mroonga の wrapper mode を利用
※innoDB の Transaction を利用したいため
- 14. 検索用にテーブルを用意して、マージ
記事マスタ (MySQL)
評価情報( MySQL )
・記事保存時のコールバック
・バッチ処理 検索用データ
カテゴリー階層データ (MySQL)
サイト内検索
Pageview(TokyoTyrant)
PV のような随時変わるもの以外は、
ほぼ全てコールバックメソッドで保存
- 18. 検索ワードサジェストの出し方
恋愛
恋愛したい
心構え
チャンスを逃さない
女性の見抜き方
男性の見抜き方
モテる方法
男性編
女性編
男心を理解する
いい女になる
女子力を高める
- 20. テーブル構造
id parent_id 階層名 階層名(長い) ローマ字
(短い)
1 0 恋愛のハウツー 恋愛 rennai
2 1 恋愛したい これから恋愛したい人のためのハウツー rennai
3 2 心構え 恋をしたい人の心構え kokorogamae
チャンスを逃さな
4 2 恋のチャンスを逃さない方法 tyansuwonogasanai
い
オーソドックスな階層構造管理
- 21. インデックスの貼り方
id parent_id 階層名 階層名(長い) ローマ字
(短い)
1 0 恋愛のハウツー 恋愛 rennai
2 1 恋愛したい これから恋愛したい人のためのハウツー rennai
3 2 心構え 恋をしたい人の心構え kokorogamae
チャンスを逃さな
4 2 恋のチャンスを逃さない方法 tyansuwonogasanai
い
階層名とローマ字で複合 INDEX
- 25. mroonga でこまったこと
mysql > INSERT INTO search_table (id, data) VALUES (1, "foo");mysql > SELECT
LAST_INSERT_ID();
+-------------------------+| LAST_INSERT_ID() |+-------------------------+| 0|
+-------------------------+1 row in set (0.00 sec)
Σ( ゚ д ゚ lll) ガーン