Hatena::ブログ(Diary)

前人未踏の領域へ

2011-01-03

[]日本語対応

N-gram

Solrには2-gramのCJKTokenizerがあるのでそれを使える。Tokenizerはインデックスフィールドごとに設定するが、サンプルには記載がないのでschema.xmlにtext_cjkというFiledを追加してこれをCJKTokenizerで解析してみる。追記したらサーバーを再起動。

#schema.xml
cd apache-solr-3.3.0/example/solr/conf
vi schema.xml
<fieldType name="text_cjk" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
   <tokenizer class="solr.CJKTokenizerFactory"/>
  </analyzer>
</fieldType>

確認

http://localhost:8983/solr/admin/analysis.jsp

  1. Fieldをtypeに変更して「text_cjk」と入力
  2. FieldValueに「こんにちは」と入力
  3. Analyzeボタン押下

f:id:takeR:20110103180802j:image

形態素解析

Solrには日本語の形態素解析器は含まれないので別途形態素解析用のライブラリを用意する必要がある。
これまで、Javaの形態素解析器ではSenが有名であったが、既に長いことメンテナンスされなくなっている。
これとは別にSenをベースとしたライブラリlucene-gosenがリリースされているのでこちらを使用する。
詳しくはこの辺を参照
http://lucene.jugem.jp/?eid=435
http://lucene.jugem.jp/?eid=436

ダウンロード

以下よりダウンロード。2つのjarがあるが、これは辞書の違いなので好きな方を持ってくる。
http://code.google.com/p/lucene-gosen/

ライブラリをコピー
mkdir $SOLR/example/solr/lib
cp lucene-gosen-1.1.1-ipadic.jar $SOLR/example/solr/lib

schema.xmlを編集
#schema.xml
cd apache-solr-3.3.0/example/solr/conf
vi schema.xml
<fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.JapaneseTokenizerFactory"/>
  </analyzer>
</fieldType>
再起動
#Senのディレクトリを指定して起動
cd apache-solr-3.3.0/example
java -jar start.jar

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証