Solr インデクシング

このセクションでは、インデクシングのプロセスについて説明します。インデクシングとは、Solr インデックスにコンテンツを追加し、必要に応じてそのコンテンツを変更または削除することです。

インデックスにコンテンツを追加することで、Solr で検索できるようになります。

Solr インデックスは、XML ファイル、カンマ区切り値 (CSV) ファイル、データベースのテーブルから抽出されたデータ、Microsoft Word や PDF などの一般的なファイル形式のファイルなど、さまざまなソースからデータを受け入れることができます。

Solr インデックスにデータを読み込むための 3 つの最も一般的な方法は次のとおりです。

  • Solr Cell と Apache Tika を使用したインデクシング。Apache Tika を基盤として、バイナリファイルまたは Office、Word、PDF、その他の独自の形式などの構造化ファイルを取り込みます。

  • HTTP リクエストを生成できる任意の環境から Solr サーバーに HTTP リクエストを送信して XML ファイルをアップロードします。

  • Solr の Java クライアント API を介してデータを取り込むカスタム Java アプリケーションを作成します (詳細は クライアント API を参照)。Java API を使用することは、Java API を提供するコンテンツ管理システム (CMS) などのアプリケーションを使用している場合に最適な選択肢となる可能性があります。

データの取り込みに使用される方法に関係なく、Solr インデックスに供給されるデータには共通の基本的なデータ構造があります。それは、それぞれに*名前*と*コンテンツ*(空の場合もある)を持つ複数の*フィールド*を含む*ドキュメント*です。フィールドの 1 つは通常、一意の ID フィールド (データベースの主キーに類似) として指定されますが、一意の ID フィールドの使用は Solr では厳密には必須ではありません。

フィールド名がインデックスに関連付けられているスキーマで定義されている場合、コンテンツがトークン化されるときに、そのフィールドに関連付けられた分析手順がそのコンテンツに適用されます。スキーマで明示的に定義されていないフィールドは、無視されるか、フィールド名に一致する動的フィールド定義が存在する場合はそれにマッピングされます。

Solr サンプルディレクトリ

Solr を "-e" オプションで起動すると、`example/` ディレクトリが、作成される Solr サンプルインスタンスのベースディレクトリとして使用されます。このディレクトリには、`example/exampledocs/` サブディレクトリも含まれており、さまざまな形式のサンプルドキュメントが含まれています。これらのドキュメントを使用して、さまざまなサンプルへのインデクシングを試すことができます。

ファイル転送用の curl ユーティリティ

このセクションの多くの手順と例では、URL を介してコンテンツを転送するために curl ユーティリティを使用しています。 curl は、HTTP、FTP、およびその他多くのプロトコルを介してデータを送受信します。ほとんどの Linux ディストリビューションには curl が含まれています。 Linux、Windows、およびその他多くのオペレーティングシステム用の curl のダウンロードは、http://curl.haxx.se/download.html にあります。 curl のドキュメントは、http://curl.haxx.se/docs/manpage.html にあります。

curl やその他のコマンドラインツールを使用してデータを送信することは、例やテストには問題ありませんが、本番環境での更新に最適なパフォーマンスを実現するための推奨される方法ではありません。 Solr Cell またはこのセクションで説明されている他の方法を使用すると、より良いパフォーマンスを実現できます。

curl の代わりに、GNU wget (http://www.gnu.org/software/wget/) などのユーティリティを使用したり、Perl で GET と POST を管理したりすることもできますが、コマンドラインオプションは異なります。