Apache Lucene(リンク)をベースにしたオープンソースのエンタプライズ向け検索サーバであるApache Solrプロジェクト(リンク)は、先頃バージョン1.3をリリースした。InfoQではSolrの作者であるYonik Seeley氏(リンク)と話をし、このリリースの詳細とSolrがエンドユーザに提供する機能について聞いた。
Seeley氏はまず、「検索ボックスやファセット・ブラウジング(誘導ナビゲーション)、あるいはその2つを組み合わせたものを必要とするほとんどの人」が対象であると説明し、Solrの重要な機能を挙げた。
- 標準に基づいたオープンなインタフェース - Solr検索サーバへの問い合わせや結果の取得では、XML、JSON、HTTPがサポートされている。
- 簡単な管理 - SolrサーバはHTMLのインタフェースで管理することができ、サーバの情報はJMXで公開され、Solrの設定はXMLで行われる。
- ファセット検索 - 問い合わせ結果は自動的にカテゴリーに分類される。
- 検索ヒットのハイライト機能の統合 - 検索結果の中で一致した単語は、自動的にハイライトされる。
- 拡張性 - 他のサーバへの高速でインクリメンタルな更新とスナップショットの分散/複製。
- 拡張可能なプラグインのアーキテクチャ - (カスタム・リクエスト・プロセッサや問い合わせ結果のフォーマットのような)新しい機能をプラグインとして簡単にSolrサーバに追加することが出来る。
Seeley氏は、このリリースの主な新機能についても示した。
- 分散検索 - インデックスは透過的に複数のシャード(shard)に分けられ、ひとつのSolrサーバは、それぞれの設定とスキーマをもつ複数のインデックスをサポートすることが出来る。そしてSolrサーバを停止することなく主要な設定の変更を行うことが出来る。
- 拡張された問い合わせ機能 - 新しいJavaクライアント(SolrJ)や、特定の問い合わせでどのドキュメントが最初に出現するかを直接設定する機能、類似文書検索、検索タイムアウト、日付ファセッティング、スペルチェックなど、いくつかの新機能が盛り込まれている。
- 拡張されたデータインポートツール- データベースやその他の構造化データソースをインポートすることが可能で、インポートした値をマッピングしたり変換することができる。
- さらなるカスタム拡張点 - 新しい更新プロセッサ・チェーンがあり、インデックス作成中にドキュメントを変更したりリダイレクトすることが可能である。検索コンポーネント・チェーンは問い合わせ結果やカスタムクエリパーサ、プラグ可能な機能を変更したり追加する。
- 性能の向上 - インデックスの作成速度は大幅に改善し、バイナリの応答フォーマットや、もっと高速なdelete-byクエリが組み込まれた。
包括的な変更ログも入手可能である(リンク)。
Seeley氏はSolrのスケーリングや能力、関連機能の詳細について語り、次のように述べた。
Solrは既に、何億もの文書コレクションがあるところにデプロイされています。そして、分散検索の追加により、Solrは十億の文書コレクションを扱えるはずです。
Solrには素晴らしい全文関連性があり、Luceneをベースに構築されていて、キーワードの近接度によるブースティングや最近のドキュメントに対するブースティング、編集上のブースティング、そして数値フィールドの値に対する任意の関数にもとづくカスタムスコアリングさえも簡単に提供します。
AOL ではSolrを利用してチャンネルを動かしています:音楽、NFLスポーツ、AOLレシピ、リファレンスセンター、リアル・エステート、自動車などが例としてあるしょう。SolrはNetflixやZappos、Gamespot、Internet Archiveの検索機能も動かしています。他にも*たくさんの*大きなユーザを知っていますが、Solrを使用していることは公式に述べられていません。
Solr の今後の予定について尋ねたところ、Seeley氏は、より優れたスケーラビリティ、大きなクラスタのもっと簡単な設定や管理、ロケーションベースでリアルタイムの検索、プラグインの設定にSpringを使用するためのリファクタリングが予定されていたことを示した。Seeley氏はメーリングリストへの投稿(リンク)についても指摘し、その中で彼はSolrの今後の予定について詳細に、特に2.0の時間枠について論じている。