blogSetomits

Welcome to blogSetomits

Apache Solr入門 ―オープンソース全文検索エンジン

Apache Solr入門 ―オープンソース全文検索エンジン前にも一度読んだのですが、改めて買ってApache Solr入門 ―オープンソース全文検索エンジンを読みました。この本があれば、一通り検索エンジンをセットアップして、インデックスを作って検索できるようにして、データが更新されるようにしてというところまでできるんじゃないでしょうか。いくつかの言語向けに検索サイト構築のサンプルも有るし、検索だけじゃないナビゲーションやサジェスト/スペルチェックなど、いくつかの機能にも触れられていて至れり付くせりな感じです。
ただいかんせん、この本では形態素解析器として Sen が紹介されているのですが、現行の Solr (3.1.0)では Sen は使えません。いずれ改訂版とかが出るんじゃないかという気もしますが、そういうわけでもしかしたら日本語を扱うあたりで躓いてしまうかもしれません。
Posted at 23:06 | Comments : 3

Apache Solr 3.1.0 で日本語データを扱うように

N-gram

日中韓の文字に関しては 2-gram、 ASCII 文字に関しては空白区切りにするトークナイザが用意されています。これを利用するには schema.xml 内の所定の fieldType 内の analyzer 内の tokenizer の class 属性を "solr.CJKTokenizerFactory" を指定します。

設定例
...
<fieldType name="text_cjk" class="solr.TextField" positionIncrementGap="100" >
  <analyzer>
    <tokenizer class="solr.CJKTokenizerFactory"/>
  </analyzer>
</fieldType>
...
入出力例
result of ngram

lucene-gosen

lucene-gosen はlucene-gosen - Japanese analysis for Apache Lucene/Solr 3.1 and 4.0 - Google Project Hostingにて開発されている Lucene / Solr 用の形態素解析器です。
lucene-gosen + Solr 3.1 | 関口宏司のLuceneブログで詳細が説明されていますが、僕は ant を実行せずにDownloadsから jar ファイルをダウンロードして /usr/local/Cellar/solr/3.1.0/libexec/example/solr/lib に設置しました。これを使うには、 tokenizer の class 属性に "solr.JapaneseTokenizerFactory" を指定します。

設定例
...
<fieldType name="text_gosen" class="solr.TextField" positionIncrementGap="100">
  <analyzer>
    <tokenizer class="solr.JapaneseTokenizerFactory"/>
  </analyzer>
</fieldType>
...
入出力例
result of lucene-gosen

Kuomoji

Kuromoji はATILIKA Community Innovationで開発されている形態素解析器です。 Kuromoji はユーザ辞書を使って形態素解析の結果をカスタムできたり、複合語を分割して部分に対するマッチングができます。
Downloads - ダウンロード - Koromoji - Confluenceの kuromoji-solr の Binary distribution のファイル(zip または tar.gz)をダウンロードして展開し、 lib/kuromoji-* を /usr/local/Cellar/solr/3.1.0/libexec/example/solr/lib に設置しました。これを使うには tokenizer の class 属性に org.atilika.kuromoji.solr.KuromojiTokenizerFactory を指定します。

設定例
<fieldType name="text_kuromoji" class="solr.TextField">
  <analyzer>
    <tokenizer class="org.atilika.kuromoji.solr.KuromojiTokenizerFactory"
               mode="search"
               user-dictionary=""/>
  </analyzer>
</fieldType>
入出力例
result of kuromoji
Posted at 00:39 | Comments : 0

Homebrew で Apache Solr のインストール

Mac 上でSolrを試すべくセットアップしました。

Solr のインストール

$ brew install solr
==> Downloading ftp://ftp.fu-berlin.de/unix/www/apache/lucene/solr/3.1.0/apache-
######################################################################## 100.0%
==> Caveats
To start solr:
    solr path/to/solr/config/dir

See the solr homepage for more setup information:
    brew home solr
==> Summary
/usr/local/Cellar/solr/3.1.0: 2455 files, 125M, built in 2 seconds

Solr 付属サンプルの起動

$ cd /usr/local/Cellar/sorl/3.1.0/libexec/example
$ java -jar start.jar
...
2011-04-22 00:27:42.885:INFO::Started SocketConnector@0.0.0.0:8983

稼働確認

管理画面 http://localhost:8983/solr/admin/ をブラウザで閲覧。

Posted at 00:19 | Comments : 0

プログラミング Google App Engine

プログラミング Google App Engine評判が良いようなのでプログラミング Google App Engineも読んでみました。 Python / Java のどちらを使う人にも役に立つように、項目ごとにそれぞれの言語環境向けの説明がされています。データストア関連の記述が結構多く、確かになかなかためになると思いました。僕は Java の箇所は読み飛ばして読む分にはそれで良かったのですが、後から「あのことってどこに書いてたっけ?」と探すときにちょっと面倒に感じます。また、誤字脱字が結構多く、感覚的には2,3ページに1つは誤字があるんじゃないかなという感じがしました。実際には5ページに1つくらいかもしれません。内容自体は悪くないと思うので、そこがより一層残念に思いました。
Posted at 15:21 | Comments : 0

Android2.1プログラミングバイブル

Android2.1プログラミングバイブルAndroid のバージョンは Xperia で 2.1 の配布が始まり、 Desire では 2.2 となっていて、そろそろ 2.3 が出ると言われていますが、Android 2.1 プログラミングバイブルを読みました。同じシリーズのAndroid 1.5 プログラミングバイブルは持っているのですが、新しく追加された API についてはその旨が記されていて丁寧であるとは思います。一方でバージョンが頻繁に上がるものの技術書というのは風化が激しくて大変だなとも思いました。新しく追加され部分だけをちょっと安めに売ってくれるとかあれば良いな。
Posted at 09:36 | Comments : 0