Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
BLOGTIMES
2009/06/29

Solr1.4-devとcmecab-java

  nlp  java  solr 
このエントリーをはてなブックマークに追加

最近Solrでつくる検索サーバーが個人的にちょっとホットなので、自分でも環境構築をしてみました。

Solr 1.3で日本語の形態素解析に基づくインデックスを作りたい場合senのダウンロードページにあるlucene-ja-2.0test2.zipからlucene-ja.jarとsen.jarを取り出してlibに配置し、schema.xmlに下記を追加するように指示*1している場合が多いようです。

<fieldType name="text_sen" class="solr.TextField"> <analyzer class="org.apache.lucene.analysis.ja.JapaneseAnalyzer"/> </fieldType>

今回は最新の開発版であるSolr 1.4を入れてみたので、同様の方法を試したところエラーが出てうまく動かす事が出来ませんでした。仕方が無いので、なにか使えるのもが他にないかと探してみたところ、cmecab-javaというMeCabのJNIバインディングのプロジェクトに下記のようなリリースノートを見つけました。

ReleaseNote - cmecab-java - リリースノート - Google Code

v1.6 (2009/5/25)
* Solr 1.4向けに、CharStreamに対応した一連のTokenizer, TokenizerFactoryを追加。
* パフォーマンス向上が見られないため、Pooled系のTokenizerを廃止。
* senにバッファオーバーフロー防止パッチを当てたものを同梱。

これを使う場合にはcmecab-(ver).jar、protobuf-java-2.1.0.jar、sen.jarをlibに配置し、schema.xmlには使用方法の解説にあるとおり、下記の内容を書き加えます。

<!-- Senを用いたTokenizer --> <fieldType name="text_sen" class="solr.TextField"> <analyzer> <!-- confFileパラメータには、Senの設定ファイル(sen.xml)のパスを指定 --> <tokenizer class="net.moraleboost.solr.SenTokenizerFactory" confFile="/etc/sen/sen.xml" /> </analyzer> </fieldType>

これでうまく動かす事ができるようになりました。

それにしてもSolrはよくできていますね。ファセットカウントが簡単に出せたりとか、絞り込みができたりとか。以前、JavaからLuceneを使ってインデックスを作る作業をしたことがあるのですが、そのときにはこのようなインデックスサーバが簡単にできるようになるとは思ってもみなかったなぁ。


トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3100
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン