Solrは、初めCNET Networksで開発されていたが、2006年に、Apacheソフトウェアファウンデーションに寄贈された。現在は、検索アプリケーションとして、様々な高トラフックな外向けWebサイトで利用されている。コミュニティの報告も活発で、数百万ドキュメントのインデックスでも、問題なく動作しているというユーザ報告もある。
Solrの機能セットは、いくつかのサブシステムに分類される。
スキーマ
- フィールドの型とドキュメントフィールドの定義
- 動的フィールドにより、新しいフィールドをまとめて追加することが可能
- 明示的な型により、フィールドの型を推測する必要がない
- ストップワード(※1)、同義語リスト、プロテクトワードのリストの設定が外部ファイルベースで可能
- 多くの追加テキストに対し、単語の分割、正規表現、あいまい検索を含んだ分析が可能
- 設定可能なレスポンスフォーマット(XML/XSLT, JSON, Python, Ruby)があるHTTPのインターフェース
- 複数フィールドによるソート
- コンテキストの一部をハイライト
- 継続的なスコアリングレンジとプレフィックスクエリー - no idf、coord、lengthNormなどの要素や、クエリーがマッチする条件の数に制限が無い
- Function Query - フィールドの数値や順序による関数によって得られたスコアに影響する
- Date Math - クエリーや更新で、"当日"と比べた日付の指定が可能
- 入れ替え可能なクエリーハンドラ、拡張性の高いXMLデータフォーマット
- ユニークキーのフィールドをベースとしたドキュメントの一意化
- 更新や削除をハイパフォーマンスで一括処理
- インデックスの変更をトリガーとした、ユーザが編集可能なコマンド群
- ソートやクエリーの整列の両方に対する数値での設定
- キャッシュ実装部分が入れ替え可能
- バックグラウンドで自動的にキャッシュが行われる(あるサーチャーが直前にアクセスしたキャッシュが、別の新たなサーチャーに利用されます。インデックスやサーチャーを変更することで高いキャッシュヒット率が可能になります)
- 早くて小さいフィルター実装
- ユーザーレベルキャッシュの自動化のサポート
- インデックス部分における効率的なディストリビューション
- プル戦略により、サーチャーが簡単に追加できる
- 設定を行うことで、高パフォーマンスとキャッシュ利用のトレードオフが可能
- キャッシュの利用、更新、クエリーにおける包括的な統計情報
- テキスト分析のデバッガ、分析の各段階における結果を表示
- Web管理のクエリーインターフェース、デバッグ出力
近頃、2つのパートに分かれたシリーズものの記事が、developerWorksに掲載され、インストール手順、設定方法、使用方法、Solrのチューニングといったより詳細な内容が、一通り書かれている。今回のリリースは、SolrがIncubatorを卒業して初めてのリリースとなり、CSVなどの区切りのテキストデータのロード、タイムベースの自動コミット、より高速なフェッチ、ネガティブフィルター、スペルチェックハンドラ、正規表現テキストフィルタ、より柔軟なプラグインといった、より多くの新機能を提供しています。
(原文は2007年6月11日にリリースされました)