28
GREEにおける 全文検索の歴史 GREE Inc. Infrastructure Platform Development Nobutoshi Ogata (@nobu666) 13326日火曜日

Solr勉強会第10回

Embed Size (px)

Citation preview

Page 1: Solr勉強会第10回

GREEにおける全文検索の歴史

GREE Inc. Infrastructure Platform Development

Nobutoshi Ogata (@nobu666)

13年3月26日火曜日

Page 2: Solr勉強会第10回

about me

• @nobu666

• 片隅でくすぶっています

• 猫とウイスキーとワイン

13年3月26日火曜日

Page 3: Solr勉強会第10回

GREEの検索

13年3月26日火曜日

Page 4: Solr勉強会第10回

検索の歴史 (1)

• Senna

• 2007年とかその辺の話…?

• 安定稼働しなかった

13年3月26日火曜日

Page 5: Solr勉強会第10回

検索の歴史 (1)• Tritonn

• 2009年くらいまで

• データファイルが壊れる

• やっぱり安定しない

• MySQLのバージョンあげたい

13年3月26日火曜日

Page 6: Solr勉強会第10回

検索の歴史 (3)

• Lucene

• 2012年初頭まで

• 手動index optimizeとの戦い

13年3月26日火曜日

Page 7: Solr勉強会第10回

検索の歴史 (4)

• Solr

• イマココ

• 2012年初頭から

13年3月26日火曜日

Page 8: Solr勉強会第10回

Solr化の恩恵

• ほぼメンテナンスフリー

• SPoFフリー

• 全体的な検索速度向上

13年3月26日火曜日

Page 9: Solr勉強会第10回

LuceneからSolr3.6へ

13年3月26日火曜日

Page 10: Solr勉強会第10回

まずやること

13年3月26日火曜日

Page 11: Solr勉強会第10回

まずこれを買うんだ!!

13年3月26日火曜日

Page 12: Solr勉強会第10回

いつ買うか?

13年3月26日火曜日

Page 13: Solr勉強会第10回

Solr化への前提条件

• 他プロダクトへ影響を出さない

• フロントエンドからの呼び出しは互換性を維持する

• Ease of maintenance

13年3月26日火曜日

Page 14: Solr勉強会第10回

後方互換• HTTP GETを受けてXMLを返却

• Lucene+Tomcatで受け付けていたクエリをSolr向けに変換

• Solrの返却するXMLをカスタマイズ

• Indexing依頼のI/Fも変えない

13年3月26日火曜日

Page 15: Solr勉強会第10回

Ease of maintenance

• すべてのサーバーを冗長化

• サービス影響なしにindex optimize

13年3月26日火曜日

Page 16: Solr勉強会第10回

←WebアプリがQueueへ登録

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

←クエリの受付、返却

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

query translation

13年3月26日火曜日

Page 17: Solr勉強会第10回

簡単に説明

• 現状7schema

• サーバー台数40台ちょっと

• マルチコア使えばもっと詰められる

• 全部で250qps+ くらい

13年3月26日火曜日

Page 18: Solr勉強会第10回

13年3月26日火曜日

Page 19: Solr勉強会第10回

13年3月26日火曜日

Page 20: Solr勉強会第10回

負荷の傾向• 大凡0:00付近に負荷のピーク

• schemaによってはほとんど使われていない

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

13年3月26日火曜日

Page 21: Solr勉強会第10回

作りこみが必要だった部分(1)

• Indexer

• Masterへ分散してIndexing

• マルチスレッドで効率的に

13年3月26日火曜日

Page 22: Solr勉強会第10回

作りこみが必要だった部分(2)

• Query Translation

• 負の遺産の継承

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

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

• 人力監視との兼ね合い

• 監視

• Replication, SSH, Ping, Solr Ping13年3月26日火曜日

Page 23: Solr勉強会第10回

今でも面倒なこと

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

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

13年3月26日火曜日

Page 24: Solr勉強会第10回

検索のこれから

13年3月26日火曜日

Page 25: Solr勉強会第10回

改善したいとこ• 精度

• 日本語以外でも使われるので辞書を使う&メンテするのが事実上難しい

• さらなる自動化

13年3月26日火曜日

Page 26: Solr勉強会第10回

試したいこと

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

• Solr Cloud

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

13年3月26日火曜日

Page 27: Solr勉強会第10回

Any Questions?

13年3月26日火曜日

Page 28: Solr勉強会第10回

Join us!http://jobs.gree.net/

13年3月26日火曜日