2011/12/08(木)オープンソースの全文検索エンジンSolrについてメモ

2011/12/08 13:19 覚え書き
オープンソースの全文検索エンジンをいろいろ調べてみて、
Solrってのがなんか良さそうだったのでインストールしたりしてみた。

オープンソースの全文検索エンジンにはいろいろあって、有名なのはNAMAZUとかSenna。
NAMAZUは小中規模向けっぽい。
SennaはMySQLを置き換える格好になるのでちょっと使いたくないなと思ってた。
で、Solrは単独で機能する上にかなり大規模までいけるらしい。20億インデクスくらいいけるとどっかに書いてあった。
ちなみにエンジンのコアはLuceneというやつで、それにいろいろくっつけて便利にしたのがSolr。さらにGUIとクローラーまでくっつけたFessというのもあって、これは日本人が作ってたりする。クローラー付きのものにはNutchという海外産のものもある。
でもどれも全体的にドキュメントが少ない。今回試してみたけど、結局よくわからん部分も多く、実戦投入まではいきませんでした。Ceronの全文検索とかまかせられればよかったんだけど。
Nutchは「Googleに代わるオープンな検索エンジン」を標榜してたりするので、サイト内検索とかじゃなくネット全体の検索エンジンも作れそうな気もするけど実際のところ負荷的にどうなんですかね。期待もあるけど気軽に試すレベルでもないしなあ。20億インデクスじゃ足らなそうだけど。

で、以下、Solrをインストールして稼働させるまでに調べたことを備忘録でメモしておきます。ご参考まで。殴り書きですすいません。

・基本、ダウンロードして解凍するだけ。お手軽。

・サーバにサービスとして認識させるために起動シェルを登録。
http://ochien.seesaa.net/article/153105901.html
http://d.hatena.ne.jp/fat47/20110920/1316505461
init.dまわりの説明はこちら http://www.usupi.org/sysad/031.html

・そのままだと日本語対応してないので形態素解析とか入れる。
以前はSenが主流だったけど開発終了。いまは日本語検索にはGoSenを使うらしい。
http://d.hatena.ne.jp/lettas0726/20110711/1310375789
http://d.hatena.ne.jp/hjym_u/20110620/1308578328

・速度的にもSolr優秀。Sennaより成績いい。
http://thinkit.co.jp/book/2008/11/25/211

・PerlインタフェースとしてWebService::Solrがある。
けど、ちょっと巨大すぎ?依存モジュールがやたら多い。自作したほうがよさげ。

・基本マルチコアにする。
各コアにlibディレクトリを作り、それぞれに日本語トークナイザーを入れる。

・Solr自体がWebサーバ(jetty)を持ってて管理画面はその上で動く。Apacheと連携させちゃったほうが管理面で何かと便利そう。
http://www.atmarkit.co.jp/fjava/rensai4/safetomcat_01/safetomcat_01_2.html(理屈はここの中盤のTomcatの場合と同じ)
→でもなんかうまくいかなかった!!!未解決!

以上。

追記(2011/12/9)
ちなみに本は下記を買いました。これ一冊で基本的な部分は困らない。
asin:4774141755
Apache Solr入門

追記(2012/6/17)
ログの出力先の設定がググっても出てこなくて迷ったが、上記起動シェル内で設定していた。これで/var/log/以下にsolr.logが出てくるので、logrotate.dでログローテーションの設定をすればいい感じになる。
OK キャンセル 確認 その他