Solr+Velocityの多機能検索デモ

Solr(ソーラー)はLuceneをベースにした驚くほど多機能かつ高性能な検索システムです。SolrはJavaで実装されていますが、HTTP/XMLベースのAPIが用意されていて、Java以外の言語でもクライアントを作りやすくなっています。
Apache Solr -

現時点の最新版は3.2ですが、バージョン3.1からVelocityベースのサンプルのクライアントがついていて、これを起動すると、Luceneで提供される全文検索の他、ファセット検索(ナビゲーション)、検索窓の入力補完、検索語のハイライト、検索結果のクラスタリング、地図表示など、Solrで提供されている主な機能が簡単に試せるようになっています。

VelocityはJavaベースのテンプレートエンジンで、スクリプト言語を使ってJavaオブジェクトを参照しながら動的にHTMLのウェブページを生成することができます。
Apache Velocity Engine

さて、Solrのサンプルは次のようにして起動できます:

$ curl -O http://ftp.kddilabs.jp/infosystems/apache//lucene/solr/3.2.0/apache-solr-3.2.0.tgz
$ tar zxf apache-solr-3.2.0.tgz
$ cd apache-solr-3.2.0/example
$ java -Dsolr.clustering.enabled=true -jar start.jar

この時点では検索対象が空なので、サンプルの文書をSolrサーバに登録します。

$ cd apache-solr-3.2.0/example/exampledocs
$ ./post.sh *.xml

ブラウザでhttp://localhost:8983/solr/browseにアクセスすると検索のデモ画面が開きます。登録された文書がリストされ、左側にカテゴリや製造元、値段、製造日などのファセットで分類されていて、絞り込みができるようになっています。さらにその下には検索結果をクラスタリングした結果がクラスタラベル付きで表示されます。検索窓には入力補完が働き、結果に検索語があれば強調表示され、各検索結果の右にあるリンクをクリックすると類似項目が検索されるなど、至れり尽くせりです。