Solrの概要

ApacheTM Solrは、オープンソースでJavaベースの情報検索ライブラリであるApache LuceneTMを基盤として構築された検索サーバーです。Solrは、非構造化データ、半構造化データ、あるいは非構造化データと構造化データの組み合わせを伴う、強力なドキュメント検索または分析アプリケーションを推進するために設計されています。また、限定的にリレーショナル、グラフ、統計、データ分析、またはストレージに関連するユースケースにも二次的に対応しています。Solrは、拡張性を念頭に置いて設計されたApache 2.0ライセンスのオープンソースソフトウェアなので、ほぼすべての商用または非営利のユースケースに適応または最適化することができます。

Solrの検索構文とパーサーは、最もシンプルなキーワード検索から、複数のフィールドに対する複雑な検索やファセット検索の結果まで、あらゆるものをサポートしています。折り畳みクラスタリングは、eコマースやストアフロント向けの説得力のある機能を提供します。ストリーミング式を使用すると、コーパス全体、クエリに一致するサブセット、またはドキュメントのセットからランダムにサンプリングした結果に対して分析を行うことができます。強力な数式はストリーミング式を基盤として、高度な分析と予測分析のユースケースのバックボーンを提供します。

高度な関連性のチューニングもサポートされています。Solrはトークン化、語幹抽出、類義語など、Luceneのテキスト分析機能のほとんどすべてにアクセスでき、ユーザーやドメインに関する知識に基づいて関連性を調整できます。Solrでは、ランクラーニング機能を使用して、機械学習によって関連性をカスタマイズすることさえできます。

クエリはHTTP 1.1または2.0リクエストを介してSolrに送信され、応答は通常、構造化ドキュメント記述子のリストです。古典的な例では、10個の記述子が返され、それぞれにドキュメントを検索するためのURL (多くの場合「10個の青いリンク」として表示される) が含まれます。ただし、Solrはドキュメントロケーターをはるかに超えており、他の多くの種類のドキュメントメタデータも含まれる可能性があります。柔軟なスキーマ構成により、ほぼすべてのタイプのメタデータをSolrでインデックス付けされたドキュメントに関連付けることができます。これらのオプションの詳細については、インデックスガイドのスキーマ要素ページを参照してください。

JSONは既定の応答フォーマットですが、XML、CSV、最適化バイナリ、または(カスタマイズして)任意のフォーマットにすることもできます。つまり、さまざまなクライアントがSolrを使用できることを意味します。このようなクライアントは、Webアプリケーション、ブラウザ、リッチクライアントアプリケーション、またはモバイルデバイスなどです。HTTPに対応していれば、どんなプラットフォームでもSolrと対話できます。一般的なプログラミング言語で使用するためのいくつかのクライアントAPIが提供されています。

Solr は Lucene ベースのドキュメント検索用のネットワークでアクセス可能なエンジンを提供することに加え、単一のマシンの限界を超えてスケールする機能を備えています。インデックスは、2 つの Solr クラスタタイプ のいずれかを使用して、パフォーマンスと信頼性の面でシャード化および複製できます。あるタイプのクラスタはサポートするインフラストラクチャを必要とせず、インスタンスは管理者によって直接管理されています。2 番目のタイプでは、Apache ZookeeperTM を使用して、クラスタ全体の管理アクティビティを調整します。

Solr のスケーリングと高可用性機能は非常に効果的であるため、最大かつ最も有名なインターネットサイトのいくつかで Solr が使用されています。Solr を使用するサイトの部分的で通常は自己ノミネートされたリストは、https://cwiki.apache.org/confluence/display/solr/PublicServers で見ることができます。