不可視点

search guy at cookpad.com

Solr勉強会に行ってきました。

7月21日にECナビにてSolr勉強会がありました。LTに「Solr@twitter検索」という発表で参加させて頂いた時の資料を公開しておきます。すごく勉強になりました。当日名刺をもってなかったり、遅刻してきたりいろいろご迷惑おかけしてしまって申し訳なかったです…!でもこりずに次も誘ってくださいw
当日の勉強会の様子:

スライド:Solr@twitter検索(.ppt)

分かりにくいスライドですが「考え方が根本的に間違っている!」「これはこうすべきだし!」「これを使うべき。」「ここはどうなってるの?」などお気づきの点ありましたらコメント欄などでお知らせください。
もう少しSolrいじってみてまたブログに書いたりしてみようと思います。

メモ

ついでに当日自分でとってたメモも書いておきます。遅刻した上に、全然内容に追いついてないんですが…
(しかも数字は聞きながら写しただけなので当てになりません…)


・ECナビでの事例(春山さん)

2300万件
クエリ 一日100万
インデックスサイズ:元データ10GB->18GB

rsyncレプリケーション ファセット 独自のtokenizer
ロボットは別のインスタンスに流す
インデックス作成用のsolrがあり、そこからレプリケーションする
インデックスの並列化のために三つのsolrを一つのマシンで動かしている。
ロボットからのクエリはロボット用のサーバーに流す

ECNaviTokenizer
記号
ハイフンなどはアプリ側で対応。
仮名正規化

・リクルートでの事例(植野さん)
solrを全社に布教
導入サイトの紹介
25~280QPS
金曜の夕方がきつい。瞬間的にはもっとくる。
10分間隔で差分構成。
ファセットのみの事例もある。
LBでエラーしたsolrを切り離す。
更新は全て同時

導入コストを下げる
自社のsolrクライアント
DynamicFieldを活用
エクセルからschemaを自動生成
冗長化の実装を隠蔽

future work:
2次元検索
UIライブラリ
ほぼリアルタイムな検索(社内需要強い)

Solrは無料だから使うというフェーズは終わって、
Solr使わないと面倒だよ?という説明をしたり。

発表ここまで。

16GB quadx2 x5 大きい案件。
solrが死んだらアップデートさせない独自クライアント。

リアルタイムはキャッシュが心配とのこと。


・マピオンでの事例(坂田さん、藤本さん)
発表資料
緯度経度
sennaだときつかったのでsolr...

クエリは1日100万件くらい

電話帳 30〜40分割 900万件
全部でコア数:60

電話帳は差分更新
1日2回更新
その他のデータは更新頻度に応じて全件更新

クエリをgeocodingして座標にして拡張コンポーネントに流す。

1ホストに20コネクションしか接続できない(solr1.3)

tokenizer:形態素解析とのハイブリッド方式で精度をあげませんか。。

//以降LT
・yahoo 西岡さん

ジオコーディング
一部のデータ更新

同義語の扱い、クエリーの書き換えをしてから検索している。
3%くらいヒットするローマ字変換によるクエリ修正。
ソート条件:完全一致、形態素優先で、次にngram
三次元検索:距離+人気
緯度経度を球体として扱う。

androidのお話。新里さん
発表資料
mixiと連携
piaxという仕組み

・Solr+SSD 春山さん