第9回Solr勉強会を主催しました。#SolrJP(Jugemより移植)

Posted by johtani on Monday, November 26, 2012

目次

第9回Solr勉強会に参加しました。 皆勤賞です!というか、主催者になってしまいました。 まだ不定期の開催になると思いますが、話をされたい方などいらっしゃいましたら連絡いただければ助かります。

今回も面白い話が聞けました。

最初はKuromojiの開発者でSolrのコミッターでもあるChristianの発表です。 Solr勉強会では初の英語の発表だったんじゃないでしょうか。 Atilikaでやってることの紹介から、Kuromojiの紹介、今後の改良に関する話とひと通り話してもらいました。 途中でKuromoji使ってる人?などの質問があったのですが、残念ながら反応が薄かったです。 漢数字をアラビア数字でも検索できるようにするチケットなど、今後のKuromojiの発展も楽しみです。 (コメントとかパッチを送れというプレッシャーもあったので、パッチ頑張って書きます。。。)

つぎはニコ生でのSolrのお話。結構、赤裸々(前任者がいない状態で引き取ったとか)に語っていただき、ハラハラしながら聞いてました。 やはり、新語や略語で苦労されてるんだなぁと。 複数のサービスや開発者に対してSolrの環境を提供するという話はなかなか興味深かったです。 いろんな人がSolrを触るような状況になってきてるんだなぁと。 基盤となるラッパーのようなフレームワークとかも作ってるのかなぁ? 今後は台湾語や英語への展開も考えられているようなので、Language Detectionなどを利用してみた感想とその内容を今度発表してもらいたいですねw

つぎはFacetPivotの話です。 昔から要望が出ていたのですが、4.0系でやっと使えるようになりました。 ファセットはSolrの売りの一つだと思います。 最初はこの考え方がしっくりこない人もいるかもなぁと。特にデータをどのように作れば、いいのかって悩むこともあります。 その悩んだ内容について発表してもらいました。 実際にどうやって使うかを悩んだ内容を発表してもらうのもいいなと思いました。

最後はSolr勉強会なのに、elasticsearchの洗脳会になってましたw elasticsearchはSolrと同じ、Luceneをコアに採用した検索エンジンサーバーになります。 Solrとは別のアプローチでLuceneをラップし、REST APIでアクセスしやすくしたプロダクトです。 Luceneのコミッターの方もelasticsearchの開発に参加しています。 分散インデックスを念頭においた設計や、インストールが簡単なプラグイン構造といったSolrとは違ったアプローチがなされており、面白いものになっています。 残念ながら日本で利用されているという話はまだ聞いた事ないですが、だからこそ、触ってみて事例を紹介してみるのも面白いのではないでしょうか。 今回紹介したKuromojiも使えるようになっていたりしますので、日本語でもある程度使えると思います。

以上が簡単ですが感想です。主催者だったのに、@hirotakasterさんや@ajiyoshiさんに受付などをやっていただいたので、いつもの様にしっかり話を聞いてしまいました。 発表者の方、会場提供いただいたVOYAGE GROUP、お手伝いいただいた皆さんに感謝です!

今回初の主催でしたが、本当に助かりました。たどたどしい説明や紹介など至らない点も多々有ったかと思いますが、今後もよろしくお願いいたします。

主催者的な立場として感じたことも書いておこうかと。 無料の勉強会で、ATNDという参加しやすい環境というのもあるかもしれないのですが、キャンセルをきちんとしていただくほうがいいなと思っています。 幸いにもSolr勉強会はここ数回は盛況で、キャンセル待ちの方が結構いらっしゃいます。 ギリギリまで業務との兼ね合いを見つつ、参加しようと思っていらっしゃる方もいると思うのですが、キャンセル待ちで行けるかな?どうかな?と思っている方もいらっしゃいます。 ドタキャンは問題ないのですが、キャンセルせずに欠席は出来れば避けていただけると助かるなぁと。 (残念ながら、きちんと集計をとれなかったので、次回からは集計取ってみようかなぁと)

次回の開催は今のところ未定です。発表してみたい方、こんな話を聞いてみたいなど、気兼ねなく連絡いただければと思います。 このブログにコメントを頂いてもいいですし、ツイートしていただいてもいいので、反応をいただけると嬉しいです。 また、今回至らない点があったなどのツッコミ、批判も気兼ねなく言っていただければと思います。 今後の反省点にもしたいので、ぜひ反応をいただければと!

懇親会でも色々な方とお話できました。(もう少し、Christianと英語で話す努力とかしないとなぁ。。。)

とりあえず、メモをアップしときます。 リンクとか感想とかはまた(飲んだ)後で。。。

togetterでまとめてももらったみたいです。ありがたいです。



第9回Solr勉強会
場所:VOYAGE GROUP 会議室
日時:11/26(月) 19:00~21:00

1. Atilika Inc. Christian Moenさん
  タイトル:Who we are, what we do, and a little bit about Kuromoji
 ◎Atilikaの紹介。
  会社の目指すもの
  ・BigData、検索、NLP
 ◎プロダクト
  Kuromoji:形態素解析エンジン
  Akahai:日本語クエリサジェストエンジン
  Keywords:日本語キーフレーズ抽出
 ◎Kuromojiの紹介
  3.6からデフォルトで使える。

 ◎将来の改良の話。
  ・踊り字対応(コミット済み)
  ・漢数字に関するチケット&パッチのお話。
  ・ユーザ辞書の重複エントリ改良とか(すみません、パッチ書きます。。。)

2. 株式会社ドワンゴ 吉村総一郎さん(@sifue)
  タイトル:[email protected]ニコニコ生放送
 ◎ニコニコ生放送の紹介
  ・1日に10万番組。。。
  ・10/17にバージョンQをリリースしたら、トップはひどい叩かれようでした。。。
 ◎これまで。
  Jackrabbit→Lucene→Solr→ニコ生のSolr
 ◎退職者と入れ替わりでSolr担当。。。
  今回は資料と環境を調べて発掘した機能のお話。。。
 ◎機能
  キーワード検索。論理クエリ、などなど。
 ◎利用してる環境
  3.4ベース+Jetty
  マスタスレーブ構成(スレーブ2台)
  途中は分散インデックスを自分で実装?
  ボトルネック自体がDBからのデータ収集だった
 ◎インデックス対象
  ・見れるのは過去1週間と過去の公式番組すべて。
   この部分だけ検索可能。
  ・更新頻度の高い情報に「来場者数」「コメント数」
 ◎インデックス作成
  ・バッチにて更新
 ◎アナライザ
  CJKTokenizerFactoryを利用
  HTMLStripCharFilterFactory
  Bi-gramなので、「FF」とか「DQ」に弱い(FF1でFF13とかヒットしちゃう)
  検索精度は悪いと言われてるみたい。
 ◎1日のリクエスト
  ピーク時40QPS程度
  5分おきにスパイクがある。(ユーザが作ったツールによる検索とか。。。)
 ◎UPDATEリクエスト
  ピーク時は80QPS
 ◎開発用のJettyのマルチテナント機能を利用したSolr環境の提供
 ◎台湾語とか英語もやりたいなぁ。  

3. 株式会社マーズフラッグ 柳吾朗さん(@hitode7456)
  タイトル:ドリルダウン色々
 ◎Facetの紹介から
 ◎楽天でのドリルダウン例(これはFacetの紹介での例であり、実際にSolrが利用されているかはわからないです。)
 ◎多段ドリルダウン(ファセット)のお話。
  アプリを実装するときの考え方とか。
 ◎実直形、工夫形、PivotFacet
 Q&A
  Q:3つの性能系のコストは?
  A:まだ調べてないです。残り2つは工夫形がいいですよ。と
  次回、調べた結果の発表もやってほしいなぁ。

4. 兼山元太さん (@penguinana_) https://speakerdeck.com/penguinco/solrtoelasticsearchfalsebi-jiao
  タイトル:SolrとElasticsearchの比較
 ◎クックパッド!
 ◎elasticsearchの紹介
 ◎比較サイトもあるよ!
  http://solr-vs-elasticsearch.com
 ◎サンプルデータ・セット(ライブドアグルメ)でサンプル実装。
  https://github.com/penguinco/ld_gourmet_search
 ◎APIの紹介
  REST APIがちゃんと造られてますよと。
  設計時点でコレクションなどがURLに含まれてるのがいいよねと。
 ◎_analyzeによりアナライザーもAPIとして公開されてるよと。
 ◎Kuromojiも対応してるよ!
 ◎DynamicFieldよりも便利だよ。
 ◎クエリのDSLが違うのでちょっとアレ。
 ◎スコアリングも色々できるよ。
 ◎感想
  ・機能面の不足なし
  ・APIがいい
   コア追加とか、curlだけでできるのがいい。
  ・習得が容易(Solrやってると機能とか似てる)
  ・大規模じゃなくても使えそう

 ◎分散検索がデザイン時に組み込まれてるのがいいよね。
  write consistencyなどがインデックスごと(コレクションごと?)に設定可能なので便利。

 ◎multi-tenant
  open/closeなどができる(時系列データとか)
  shard allocationなどの細かな制御も可能ですよと。

 ◎plugin
  色々プラグインがあるよ。管理画面もプラグインであります。
  プラグインもコマンド一発で追加可能。
 ◎クエリキャッシュがないので、自前でnginx、varnishなどでキャッシュが必要。



comments powered by Disqus