SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
GREEにおける
              全文検索の歴史


                                          GREE Inc.
               Infrastructure Platform Development
                      Nobutoshi Ogata (@nobu666)
13年3月26日火曜日
about me

              • @nobu666
              • 片隅でくすぶっています
              • 猫とウイスキーとワイン


13年3月26日火曜日
GREEの検索




13年3月26日火曜日
検索の歴史 (1)

              • Senna
               • 2007年とかその辺の話…?
               • 安定稼働しなかった


13年3月26日火曜日
検索の歴史 (1)
              • Tritonn
               • 2009年くらいまで
               • データファイルが壊れる
               • やっぱり安定しない
               • MySQLのバージョンあげたい

13年3月26日火曜日
検索の歴史 (3)

              • Lucene
               • 2012年初頭まで
               • 手動index optimizeとの戦い


13年3月26日火曜日
検索の歴史 (4)

              • Solr
               • イマココ
               • 2012年初頭から


13年3月26日火曜日
Solr化の恩恵

              • ほぼメンテナンスフリー
              • SPoFフリー
              • 全体的な検索速度向上


13年3月26日火曜日
LuceneからSolr3.6へ



13年3月26日火曜日
まずやること



13年3月26日火曜日
まずこれを買うんだ!!


13年3月26日火曜日
いつ買うか?


13年3月26日火曜日
Solr化への前提条件

              • 他プロダクトへ影響を出さない
               • フロントエンドからの呼び出しは
                  互換性を維持する

              • Ease of maintenance

13年3月26日火曜日
後方互換
              • HTTP GETを受けてXMLを返却
               • Lucene+Tomcatで受け付けていた
                クエリをSolr向けに変換

               • Solrの返却するXMLをカスタマイズ
              • Indexing依頼のI/Fも変えない
13年3月26日火曜日
Ease of maintenance


              • すべてのサーバーを冗長化
              • サービス影響なしにindex optimize


13年3月26日火曜日
←WebアプリがQueueへ登録

                                  ←indexerがMasterへ登録
                                   ここで定期的にoptimize

                                  ←クエリの受付、返却

              query translation
                                  ←クエリとレスポンスの変換
                                   クライアントからのクエリ受付




13年3月26日火曜日
簡単に説明

              • 現状7schema
              • サーバー台数40台ちょっと
               • マルチコア使えばもっと詰められる
              • 全部で250qps+ くらい

13年3月26日火曜日
13年3月26日火曜日
13年3月26日火曜日
負荷の傾向
              • 大凡0:00付近に負荷のピーク
              • schemaによってはほとんど
               使われていない

              • Range Query使いまくりなので
               slaveが一番重くなる


13年3月26日火曜日
作りこみが必要だった部分(1)



              • Indexer
               • Masterへ分散してIndexing
               • マルチスレッドで効率的に


13年3月26日火曜日
作りこみが必要だった部分(2)

              •   Query Translation

                  •   負の遺産の継承

                  •   Schema毎の特殊なフィルタ付与

                  •   青少年保護なんちゃらけ

                      •   人力監視との兼ね合い

              •   監視

                  •   Replication, SSH, Ping, Solr Ping
13年3月26日火曜日
今でも面倒なこと

              • スキーマ変更を無停止でやるの
               すごいめんどい

              • SlaveをMasterに昇格する、などの
               操作は手動で設定ファイルをいじる



13年3月26日火曜日
検索のこれから



13年3月26日火曜日
改善したいとこ
              • 精度
               • 日本語以外でも使われるので
                辞書を使う&メンテするのが
                事実上難しい

              • さらなる自動化

13年3月26日火曜日
試したいこと

              • Amazonのサービスじゃないことで
               おなじみのElasticSearch

              • Solr Cloud
               • これもっと前にあったら俺は
                こんなに頑張らなくて良かった説



13年3月26日火曜日
Any Questions?



13年3月26日火曜日
Join us!
              http://jobs.gree.net/
13年3月26日火曜日

Más contenido relacionado

Más de Nobutoshi Ogata

Introducing in-house PaaS in SmartNews
Introducing in-house PaaS in SmartNewsIntroducing in-house PaaS in SmartNews
Introducing in-house PaaS in SmartNewsNobutoshi Ogata
 
The story became happy with itamae
The story became happy with itamaeThe story became happy with itamae
The story became happy with itamaeNobutoshi Ogata
 
sensuとその周辺のはなし
sensuとその周辺のはなしsensuとその周辺のはなし
sensuとその周辺のはなしNobutoshi Ogata
 
zshと仮想端末マネージャで快適ターミナル生活
zshと仮想端末マネージャで快適ターミナル生活zshと仮想端末マネージャで快適ターミナル生活
zshと仮想端末マネージャで快適ターミナル生活Nobutoshi Ogata
 

Más de Nobutoshi Ogata (6)

Introducing in-house PaaS in SmartNews
Introducing in-house PaaS in SmartNewsIntroducing in-house PaaS in SmartNews
Introducing in-house PaaS in SmartNews
 
Monitoring of SmartNews
Monitoring of SmartNewsMonitoring of SmartNews
Monitoring of SmartNews
 
The story became happy with itamae
The story became happy with itamaeThe story became happy with itamae
The story became happy with itamae
 
sensuとその周辺のはなし
sensuとその周辺のはなしsensuとその周辺のはなし
sensuとその周辺のはなし
 
SSH Tips & Tricks
SSH Tips & TricksSSH Tips & Tricks
SSH Tips & Tricks
 
zshと仮想端末マネージャで快適ターミナル生活
zshと仮想端末マネージャで快適ターミナル生活zshと仮想端末マネージャで快適ターミナル生活
zshと仮想端末マネージャで快適ターミナル生活
 

Solr勉強会第10回