Solr の勉強会 (2011/12/19 19:00 to 21:30) に行ってきました。
- 第7回Solr勉強会 - atnd.org
- #SolrJP - twitter.com
- 2011/12/19_第7回 Solr&検索エンジン勉強会( #SolrJP ) - togetter.com
- Solr勉強会第7回に参加しました。(発表もしました) - johtani.jugem.jp
ので、そのメモ。
会場を提供してくださった VOYAGE GROUP さん、運営者の方々、ありがとうございました。
Solr に特化した内容ではなく、ちょっと間口を広げて検索一般の話もあって勉強になりました。 というか、ちゃんと統計とか数学とかを勉強し直さないと先がないなぁ、と思ったり。。。
発表とか
Solrベースの全文検索サーバFess
株式会社エヌツーエスエム 菅谷 信介さん
ステータス:
- Full tExt Search System から FESS。
- 第2回の勉強会で紹介。その後も開発を継続。
- 最新バージョンは 5.0 で、Solr は 3.5。
- 当初は独立した設計だったが、次第に Solr に依存するようになってきた。
- 商用サポートもあるし、個人でも簡単に導入できる。
機能:
- インデクスを作成するときにロール情報を付加している。ログイン状態によって検索結果が違う。
- カテゴリ絞り込みも可能。デスクトップ検索といった機能も追加。クリックログの統計情報もあり。
- クローリングには S2Robot を利用。 下位レイヤで Tike, POI などを利用。
- Solr Server Manager -> Solr Group -> Solr Server で段階的に管理。グループAは更新用、グループBは検索用、などのように使い分け可能。
lucene-gosenの話
@johtani さん
lucene-gosen のコミッターのひとり。
- lucene-gosen - code.google.com
org.apache.lucene.analysis.ja パッケージに日本語処理のソースあり。
- JapanesePartOfSleechKeepFilter ・・設定値の文字のみ残す
- JapaniseBasicFormFilter ・・基本形に変換 例)悲しき=>悲しい と変換
- JapaniseKatakanaStemFilter 「ー」変換
- JapaneseBasicFormFilter 悲しき→悲しいなど基本形に変換して揃えるフィルタ
- JapaniseWidthFilter ・・ 半角<=>全角に変換するフィルタ
- JapanisePunctuationFilter ・・ 区切り文字・記号を除く
- JapanisePartOfSpeechStopFilter ・・記載ワード除く
lucene-gosen は合成ルールを適用できる。合成ルールは外部ファイルで定義しておく。(compositePOS)
Q&A:
- Q)フィルタをかけると字が詰まるのですが?
- A)enablePotionIncrements="false" を指定すると字が詰まりません
その他:
- 転置インデクスを作る話。英語は空白区切りなので割と簡単に処理できる。日本語だと切り方が難しいので形態素解析を使う。ってことで Gosen へ。
- Lucene / Solr のデフォルトは N-グラム。辞書は不要だが、ノイズも多くなる。意味のある最小単位の文字列に区切るのが形態素解析。
- Kuromoji はソースごと Lucene に contribute されたらしい。 ("Kuromoji is a Japanese morphological analyzer.")
- compositePOS の話。NAIST の辞書だと数字を一文字で登録。「100」が三つの文字になってしまう。
- Kuromoji - atilika.org
ApacheCon参加レポート
- ApacheCon NA 2011 Report - slideshare.net
- ApacheCon NA 2011 - apachecon.com
Solr に限らず、全般的な話。
- Hadoop のコミュニティがとても大きくなってきた。
- IBM の Watson の紹介など。Watson は ASF のソフトウェアを活用している。
Solr の UI に関するライブラリの話。
- Velocity を使った実装も同梱。
- JRuby -> TwigKit, Rails -> Blacklight, PHP -> VUFind
- JavaScript のライブラリもある。
Solr 4.0 に関すること。
- Automaton Query ・・あいまい検索が速くなる
- 性能測定には Wikipedia を使用。
- 今)0.1-0.2QPS => 50QPS になるらしい。
- あいまい検索 (FuzzyQuery) が100倍高速化。
lucene4からファイルに(フラッシュするところまでマルチスレッドでいけるらしい。
- ニュース
- Lucene's FuzzyQuery is 100 times faster in 4.0 - java.dzone.com
- Lucene 3.5 と Solr 3.5 - 大幅な RAM 削減,SearchManager,ディープページングのサポート - infoq.com
サフィックスアレイの話
@nobu_k さん
Solr ではなく、検索一般のこと。 PFI で Sedue の開発をしている人なので、研究開発の側面が強い。
- 一般論として、速度的には 転置インデクス > Suffix Array > n-gram らしい。
- Suffix Array の使いどころは遺伝子やバイナリデータの検索。HPC との組み合わせになりそう。
- ストップワードは二分探索なので、甚大なボトルネックにはならない。
終わりに
Fess や ORBIS のように Solr をベースにしたシステムも増えてきている印象です。 一方で、Lucene / Solr を中心とした話は lucene-gosen の発表だけ。 Solr はデフォルトでもそれなりに使えるという部分と、 MySQL などの RDBMS ほどにはユーザー数が増えにくいという部分がありそうです。
形態素解析、Suffix Array、n-gram は文字列検索の基礎的なことですが、 改めてまとめてもらえると勉強になります。
あと、そろそろ Solr4 (trunk) を使ってみないとなぁ、と思いました。
前の勉強会の記録:
0 件のコメント:
コメントを投稿