狠狠撸

狠狠撸Share 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

20121123 groonga nanapi