読者です 読者をやめる 読者になる 読者になる

ログマニアックス

日々学んだこと、気づいたことをメモ代わりに残していければ。カバー範囲は割と広めです。

Solrについて勉強してみた

medium_6756753669.jpg

photo credit: Stuck in Customs via photo pin cc

オープンソース検索エンジンとして有名なものにSolrと言われるプロジェクトがある。

結構商用でも使われていて、いろんなところで使われているのだけど、

実務では触ったことがなかったので、

又聞きだったり、断片的な情報しかもっていなかったので、ちょっと整理してみた。

Solrとは

Solr - Wikipedia

全文検索エンジンライブラリLuceneをベースに、管理画面やキャッシュ機構を取り入れたアプリケーション。

機能上の特徴は、検索結果にファセットと呼ばれる検索結果を特定の軸でクラスタリング、それぞれの件数情報を付加することができること。商用の検索エンジンでもこの機能があるものは少ない。

構造上の特徴は、内部はいくつかのコンポーネントに分かれ、各所にプラグイン機構を持っているため拡張性に優れる、また、さまざまなキャッシュを持つことからより多くの検索クエリを捌けるようになっていること。

なお、v1.3になって追加されたDataImportHandler (DIH) という追加機能(contribに収録)を使うと、OracleをはじめPostgreSQLなどのデータベースから、JDBCを通じて直接、(検索したい)文書データを取り込む機能が備わり、より便利になった。

とのことで、特に拡張性が高いところが、無償であることに加えて人気を博しているポイントっぽい。

Apache Lucene - Apache Solr

こちらが本家のHP.

まずはスライドで概要をつかむ

実は以下の資料を見て概要は理解しました。

Slideshare最高!

で、日本語での特に実装ノウハウがつまっているのが、

こちら。形態素解析関連の実装をする時に注意が必要なようですね。

N-gramでの実装もされているようです。

で最新版の解説資料も。

いろいろ記事

もう老舗のテクノロジーなので、いろいろページがありました。

検索エンジンの常識をApache Solrで身につける (1/4) - @IT

こちらが一番まとまっているかも。

っていうかはてなにも導入しているのですね。

技術的な内容であれば、これ見れば完璧ですね。

Solrの導入資料を公開します - Hatena Developer Blog

Solrの公式ドキュメント(英語)はwiki形式で提供されており、網羅的な情報はこちらで手に入ります。また、Solrの基本的な使い方を学べるチュートリアルもありますが、「すでにある典型的なLAMP構成のウェブサービスにSolrによる検索機能を組み込む」までには、ここからさらに多くの情報を調べる必要があり、Solrの導入のハードルとなっていると感じました。

そこで、このような場合にさらに必要になるであろう情報を、公式のドキュメントを補足する形でまとめた資料をGitHubに公開しましたのでお知らせします。

hatena/solr-tutorial · GitHub

あと、個人でWikipediaのデータを入れている人もいた。

SolrにWikipediaのデータを入れて遊ぶ

これ、いいね。ぼくもやってみようかな?まぁオフラインの時はほぼないんですが。

Solrjサンプルコード集 | mwSoft

こんなコードも公開いただいているようです。

あと、当然ですが検索というのはユーザーの動きそのものなので、

mixiさんなどではテキスト解析でも使っているようです。

haruyama.github.com/solr20120704/

感想など

正直昔からよく聞く技術なので、ちょっと古くさいかなぁと思っていたのですが、

クラウド対応を進めていたり、パーツ単位での拡張ができたりと結構スゲーと思いました。

特に解析結果データソースを解釈することに慣れてくれば

それはそれで使える1担当として使えそうなので、実務でも触れる機会が増やせれば。