BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Apache Solr ~ Luceneベースの高スケーラブルなエンタープライズ検索サーバー

Apache Solr ~ Luceneベースの高スケーラブルなエンタープライズ検索サーバー

Apache Solrは、Luceneベースのエンタープライズ検索サーバーであり、移行可能なwarファイルに、革新的なインデックス機能やクエリー機能を備えている。ユーザーとSolrとのインタラクションは、HTTPインターフェースを通して、XMLドキュメントやHTTPのGETパラメータを利用したクエリーを作成し、インデックス化した内容を送る。さらに、Solrは、巨大スケール環境へのクエリーのロードを可能にした、マスター/スレーブのインデックスレプリケーションメカニズムを提供する。

Solrは、初めCNET Networksで開発されていたが、2006年に、Apacheソフトウェアファウンデーションに寄贈された。現在は、検索アプリケーションとして、様々な高トラフックな外向けWebサイトで利用されている。コミュニティの報告も活発で、数百万ドキュメントのインデックスでも、問題なく動作しているというユーザ報告もある。

Solrの機能セットは、いくつかのサブシステムに分類される。

スキーマ
  • フィールドの型とドキュメントフィールドの定義
  • 動的フィールドにより、新しいフィールドをまとめて追加することが可能
  • 明示的な型により、フィールドの型を推測する必要がない
  • ストップワード(※1)、同義語リスト、プロテクトワードのリストの設定が外部ファイルベースで可能
  • 多くの追加テキストに対し、単語の分割、正規表現、あいまい検索を含んだ分析が可能
クエリー
  • 設定可能なレスポンスフォーマット(XML/XSLT, JSON, Python, Ruby)があるHTTPのインターフェース
  • 複数フィールドによるソート
  • コンテキストの一部をハイライト
  • 継続的なスコアリングレンジとプレフィックスクエリー - no idf、coord、lengthNormなどの要素や、クエリーがマッチする条件の数に制限が無い
  • Function Query - フィールドの数値や順序による関数によって得られたスコアに影響する
  • Date Math - クエリーや更新で、"当日"と比べた日付の指定が可能
コア
  • 入れ替え可能なクエリーハンドラ、拡張性の高いXMLデータフォーマット
  • ユニークキーのフィールドをベースとしたドキュメントの一意化
  • 更新や削除をハイパフォーマンスで一括処理
  • インデックスの変更をトリガーとした、ユーザが編集可能なコマンド群
  • ソートやクエリーの整列の両方に対する数値での設定
キャッシュ
  • キャッシュ実装部分が入れ替え可能
  • バックグラウンドで自動的にキャッシュが行われる(あるサーチャーが直前にアクセスしたキャッシュが、別の新たなサーチャーに利用されます。インデックスやサーチャーを変更することで高いキャッシュヒット率が可能になります)
  • 早くて小さいフィルター実装
  • ユーザーレベルキャッシュの自動化のサポート
レプリケーション
  • インデックス部分における効率的なディストリビューション
  • プル戦略により、サーチャーが簡単に追加できる
  • 設定を行うことで、高パフォーマンスとキャッシュ利用のトレードオフが可能
管理者用インターフェース
  • キャッシュの利用、更新、クエリーにおける包括的な統計情報
  • テキスト分析のデバッガ、分析の各段階における結果を表示
  • Web管理のクエリーインターフェース、デバッグ出力
バージョン1.2が先週にリリースされ、数多くの新機能が追加された。

今回のリリースは、SolrがIncubatorを卒業して初めてのリリースとなり、CSVなどの区切りのテキストデータのロード、タイムベースの自動コミット、より高速なフェッチ、ネガティブフィルター、スペルチェックハンドラ、正規表現テキストフィルタ、より柔軟なプラグインといった、より多くの新機能を提供しています。

近頃、2つのパートに分かれたシリーズものの記事が、developerWorksに掲載され、インストール手順、設定方法、使用方法、Solrのチューニングといったより詳細な内容が、一通り書かれている。

(原文は2007年6月11日にリリースされました)

この記事に星をつける

おすすめ度
スタイル

BT