SlideShare a Scribd company logo
groonga を囲む夕べ
                     - nanapi 利用事例 -
                     - nanapi 利用事例 -

株式会社 nanapi CTO 和田修一
shuichi.wada@nanapi.co.jp
本日のアジェンダ




      自己紹介

      活用事例
     • サイト内検索として利用
     • 検索のサジェストとして利用


      困ったこと&ほしい機能
自己紹介




  名前
 和田修一 (わだっぷ)

  所属
  株式会社 nanapi 取締役 CTO

  BLOG
         Unix 的なアレ - http://d.hatena.ne.jp/wadap/
nanapi ご存知ですか?




                 リリース    :   2009 年 9 月
                 月間 UU   :   1700 万
                 月間 PV   :   5000 万
                 記事数     :   50000 件
mroonga 導入
  mroonga 導入    2012 年 4 月
                2012 年 4 月
   Tritonn 導入
   Tritonn 導入   2010 年 3 月
                2010 年 3 月
検索なんてできなかった
検索なんてできなかった     2009 年 9 月
                2009 年 9 月
                いままでの検索エンジンの経緯
利用方法




       mroonga の wrapper mode を利用
                    ※innoDB の Transaction を利用したいため
主につかっている場所




             サイト内検索
             検索サジェスト
主につかっている場所




             サイト内検索
             検索サジェスト
実際につかっている場所 その1




                  サイト内検索
ただ全部のデータをつっこめばいいのだが ...




      wiki のスタイルをとっていたため、
        複数バージョンを保有している
記事マスタ DB 内に複数のバージョンを保有


                 記事




                    Ver1   Ver2   Ver3




                 記事
記事マスタデータ




                    Ver1   Ver2   Ver3
テーブル構造的には




       記事マスタ    文章




    1記事マスタに対して、文章を複数保有
将来的なことを考えても ...




     その他にも検索条件追加したり、
   ソート条件などもいろいろ入れたくなる
検索用にテーブルを用意して、マージ




 記事マスタ (MySQL)




 評価情報( MySQL )



                         ・記事保存時のコールバック
                         ・バッチ処理          検索用データ



カテゴリー階層データ (MySQL)
                                                  サイト内検索




 Pageview(TokyoTyrant)




                         PV のような随時変わるもの以外は、
                         ほぼ全てコールバックメソッドで保存
主につかっている場所




             サイト内検索


             検索サジェスト
実際につかっている場所 その2




                  検索サジェスト
サジェストの元データとして




          サジェストのデータに、
           階層構造データを利用
検索ワードサジェストの出し方


            恋愛

                 恋愛したい

                           心構え

                     チャンスを逃さない

                         女性の見抜き方

                         男性の見抜き方


                 モテる方法

                           男性編

                           女性編

                                 男心を理解する

                                   いい女になる

                                 女子力を高める
検索ワードサジェストの出し方




           編集+ SEO 解析観点
テーブル構造



id   parent_id     階層名          階層名(長い)           ローマ字
                  (短い)
1       0        恋愛のハウツー            恋愛                rennai




2        1        恋愛したい     これから恋愛したい人のためのハウツー        rennai




3       2          心構え          恋をしたい人の心構え         kokorogamae



                 チャンスを逃さな
4       2                     恋のチャンスを逃さない方法      tyansuwonogasanai
                    い




             オーソドックスな階層構造管理
インデックスの貼り方



id   parent_id     階層名          階層名(長い)           ローマ字
                  (短い)
1       0        恋愛のハウツー            恋愛                rennai




2        1        恋愛したい     これから恋愛したい人のためのハウツー        rennai




3       2          心構え          恋をしたい人の心構え         kokorogamae



                 チャンスを逃さな
4       2                     恋のチャンスを逃さない方法      tyansuwonogasanai
                    い




             階層名とローマ字で複合 INDEX
実際の結果




        良い感じの結果が返ってくる
mroonga でこまったこと




       mroonga で困ったこと!
mroonga でこまったこと




mysql > INSERT INTO search_table (id, data) VALUES (1, "foo");




                       id を pk にしています
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) ガーン
.... と思ったら!




              (∩´∀ ` )∩ ワーイ
mroonga でこまったこと




     mroonga にあるといいな!
Tritonn ではワードの重み付けができた




mysql > SELECT ....
MATCH (txt1,txt2) AGAINST (“*W1:1, 2:3 foo”);




           Tritonn ではマルチセクションで
                  重み付けができた!
nanapi で利用するにあたって




  nanapi での利用事例は今後
FB していきたいと思います!
20121123 groonga nanapi

More Related Content

PDF
gumiStudy#1 ソーシャルアプリにおけるKVSの利用事例
PDF
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
PDF
ゲーム攻略サイトを網羅的に収集し、攻略情報を集約する
PDF
正規表現で楽しよう
PDF
Osh2014
PDF
中国地方Db勉強会
PPTX
CROSS 2015 全文検索群雄割拠
PDF
後悔しないもんごもんごの使い方 〜アプリ編〜
gumiStudy#1 ソーシャルアプリにおけるKVSの利用事例
_gaTracker 第4回ミーティング『not providedをどうとらえるか』 いちしま泰樹
ゲーム攻略サイトを網羅的に収集し、攻略情報を集約する
正規表現で楽しよう
Osh2014
中国地方Db勉強会
CROSS 2015 全文検索群雄割拠
後悔しないもんごもんごの使い方 〜アプリ編〜

Viewers also liked (18)

PDF
Retcambio2011
PDF
Fullife
PPTX
Creativity
PPTX
Media a2 music video pitch
PDF
Life Change
PPTX
Pitch For Media As Coursework
PDF
Oferta Retcenter
PDF
La Felicidad Matrimonial
PDF
Syntegym, English
PDF
20121019 engineer startup_meeting
PDF
The Retcambio Organizacional(Ctc)
PDF
PPTX
Storyboard
PPT
Group C Ppt
 
PDF
Teoria de las obvias realidades
PPT
Taller 7 Disciplinas de la preparacion
PPTX
Representation And The Gaze
PPTX
Stereotypes Age
Retcambio2011
Fullife
Creativity
Media a2 music video pitch
Life Change
Pitch For Media As Coursework
Oferta Retcenter
La Felicidad Matrimonial
Syntegym, English
20121019 engineer startup_meeting
The Retcambio Organizacional(Ctc)
Storyboard
Group C Ppt
 
Teoria de las obvias realidades
Taller 7 Disciplinas de la preparacion
Representation And The Gaze
Stereotypes Age
Ad

Similar to 20121123 groonga nanapi (20)

PDF
全文検索In着うた配信サービス
PDF
データベースメディアにおける検索エンジン最適化
PDF
全文検索入門
PDF
脱コピペ!デザイナーにもわかるPHPとWP_Query
PDF
ドメイン駆動設計のためのオブジェクト指向入門
PDF
DDDハンズオン
ODP
pixiv サイバーエージェント共同勉強会 solr導入記
PPT
MySQL全文検索ことはじめ
PDF
いろいろ考えると日本語の全文検索もMySQLがいいね!
PPT
第2回モヤLT_マニモト_なかおくん
PDF
ドメインオブジェクトの見つけ方・作り方・育て方
PPTX
情報検索の基礎
PDF
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
PPT
おとなのテキストマイニング
PDF
20110517 okuyama ソーシャルメディアが育てた技術勉強会
PPTX
人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ slide share
PDF
Pythonによる機械学習
PDF
20110519 okuyama tokyo_linuxstudy
PDF
名古屋Ruby会議02 LT:Ruby中級への道
PDF
Web エンジニアが postgre sql を選ぶ 3 つの理由
全文検索In着うた配信サービス
データベースメディアにおける検索エンジン最適化
全文検索入門
脱コピペ!デザイナーにもわかるPHPとWP_Query
ドメイン駆動設計のためのオブジェクト指向入門
DDDハンズオン
pixiv サイバーエージェント共同勉強会 solr導入記
MySQL全文検索ことはじめ
いろいろ考えると日本語の全文検索もMySQLがいいね!
第2回モヤLT_マニモト_なかおくん
ドメインオブジェクトの見つけ方・作り方・育て方
情報検索の基礎
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
おとなのテキストマイニング
20110517 okuyama ソーシャルメディアが育てた技術勉強会
人工知能の技術で有名なニューラルネットワークのフレームワークである #Chainer を用いた対話botを使った俺の屍を越えてゆけ slide share
Pythonによる機械学習
20110519 okuyama tokyo_linuxstudy
名古屋Ruby会議02 LT:Ruby中級への道
Web エンジニアが postgre sql を選ぶ 3 つの理由
Ad

20121123 groonga nanapi