このガイドは、Google Cloud Search Norconex HTTP Collector インデクサ プラグインの管理者、つまり、インデクサ プラグインのダウンロード、デプロイ、構成、保守を担当するユーザーを対象としています。また、読者が Linux オペレーティング システムに精通し、ウェブクロール、XML、Norconex HTTP Collector の基礎知識があることを前提としています。
このガイドでは、インデクサ プラグインのデプロイに関連する主要なタスクの実施手順について説明します。
- インデクサ プラグイン ソフトウェアをダウンロードする
- Google Cloud Search を構成する
- Norconex HTTP Collector とウェブクロールを構成する
- ウェブクロールを開始してコンテンツをアップロードする
Google Workspace 管理者が Google Cloud Search を Norconex HTTP Collector インデクサ プラグインにマッピングするために行う必要があるタスクについては、このガイドでは説明しません。これらのタスクについては、サードパーティのデータソースを管理するをご覧ください。
Cloud Search Norconex HTTP Collector インデクサ プラグインの概要
Cloud Search はデフォルトで、Google ドキュメントや Gmail などの Google Workspace プロダクトからコンテンツを検出し、インデックスに登録して提供できます。オープンソースのエンタープライズ ウェブクローラである Norconex HTTP Collector 用のインデクサ プラグインをデプロイすると、Google Cloud Search の対象を拡張してウェブ コンテンツをユーザーに提供することもできます。
構成プロパティ ファイル
インデクサ プラグインがウェブクロールを行って、インデックス API にコンテンツをアップロードできるようにするために、インデクサ プラグイン管理者は、このドキュメントのデプロイ手順に記載されている構成手順の中で具体的な情報を指定します。
インデクサ プラグインを使用するには、次の 2 つの構成ファイルでプロパティを設定する必要があります。
{gcs-crawl-config.xml}
- Norconex HTTP Collector の設定が含まれています。sdk-configuration.properties
- Google Cloud Search の設定が含まれます。
各ファイルのプロパティにより、Google Cloud Search インデクサ プラグインと Norconex HTTP Collector が相互に通信できるようになります。
ウェブクロールとコンテンツのアップロード
構成ファイルを設定すると、ウェブクロールを開始するために必要な設定がそろいます。Norconex HTTP Collector によってウェブがクロールされ、その構成に関連するドキュメント コンテンツが検出されます。また、元のバイナリ(またはテキスト)バージョンのドキュメント コンテンツが Cloud Search インデックス API にアップロードされ、インデックスに登録されて、最終的にユーザーに提供されます。
サポートされているオペレーティング システム
Google Cloud Search Norconex HTTP Collector インデクサ プラグインは、Linux にインストールする必要があります。
サポートされている Norconex HTTP Collector のバージョン
Google Cloud Search Norconex HTTP Collector インデクサ プラグインは、バージョン 2.8.0 をサポートしています。
ACL のサポート
インデクサ プラグインでは、アクセス制御リスト(ACL)を使用した Google Workspace ドメイン内のドキュメントへのアクセスの制御がサポートされています。
デフォルトの ACL が Google Cloud Search のプラグイン構成で有効になっている(defaultAcl.mode
が none
以外に設定され、defaultAcl.*
で構成されている)場合、インデクサ プラグインはまず、デフォルトの ACL を作成して適用しようとします。
デフォルトの ACL が有効になっていない場合、プラグインはフォールバックして Google Workspace ドメイン全体に対する読み取り権限を付与します。
ACL 構成パラメータの詳細な説明については、Google 提供のコネクタ パラメータをご覧ください。
前提条件
インデクサ プラグインをデプロイする前に、次の要件を満たしていることを確認してください。
- インデクサ プラグインを実行するコンピュータに Java JRE 1.8 がインストールされている
Cloud Search と Norconex HTTP Collector の関係を確立するために必要な Google Workspace 情報:
- Google Workspace の秘密鍵(サービス アカウント ID を含む)
- Google Workspace データソース ID
通常、これらの認証情報はドメインの Google Workspace 管理者から提供されます。
デプロイ手順
インデクサ プラグインをデプロイする手順は、次のとおりです。
- Norconex HTTP Collector とインデクサ プラグイン ソフトウェアをインストールする
- Google Cloud Search を設定する
- Norconex HTTP Collector を構成する
- ウェブクロールを構成する
- ウェブクロールとコンテンツのアップロードを開始する
ステップ 1: Norconex HTTP Collector とインデクサ プラグイン ソフトウェアをインストールする
- こちらのページから Norconex コミッター ソフトウェアをダウンロードします。
- ダウンロードしたソフトウェアを
~/norconex/
フォルダに解凍します。 - GitHub からコミッター プラグインのクローンを作成します。
git clone https://github.com/google-cloudsearch/norconex-committer-plugin.git
、cd norconex-committer-plugin
- 希望するバージョンのコミッター プラグインをチェックアウトして、ZIP ファイルを作成します。
git checkout tags/v1-0.0.3
とmvn package
(コネクタのビルド時にテストをスキップするには、mvn package -DskipTests
を使用します)。 cd target
- ビルドしたプラグインの jar ファイルを norconex の lib ディレクトリにコピーします。
cp google-cloudsearch-norconex-committer-plugin-v1-0.0.3.jar ~/norconex/norconex-collector-http-{version}/lib
- 作成した ZIP ファイルを解凍してファイルを抽出します。
unzip google-cloudsearch-norconex-committer-plugin-v1-0.0.3.zip
- インストール スクリプトを実行して、プラグインの .jar と必要なすべてのライブラリを http コレクタのディレクトリにコピーします。
- 前の手順で解凍したコミッター プラグインのディレクトリに移動します。
cd google-cloudsearch-norconex-committer-plugin-v1-0.0.3
$ sh install.sh
を実行し、プロンプトが表示されたら、ターゲット ディレクトリとしてnorconex/norconex-collector-http-{version}/lib
へのフルパスを指定します。- 重複する jar ファイルが見つかった場合は、オプション
1
(ターゲット Jar の名前を変更した後、ターゲット Jar のバージョンと同じかそれよりも上の場合にのみソース Jar をコピー)を選択します。
- 前の手順で解凍したコミッター プラグインのディレクトリに移動します。
ステップ 2: Google Cloud Search を構成する
インデクサ コネクタが Norconex HTTP Collector に接続し、関連コンテンツをインデックスに登録できるようにするには、Norconex HTTP Collector がインストールされている Norconex ディレクトリに Cloud Search 構成ファイルを作成する必要があります。Google は Cloud Search 構成ファイルの名前を sdk-configuration.properties
とすることをおすすめします。
この構成ファイルには、パラメータを定義する Key-Value ペアを含める必要があります。構成ファイルでは、Cloud Search データソースにアクセスするために必要な次のパラメータを最低でも指定する必要があります。
設定 | パラメータ |
データソースの ID | api.sourceId = 1234567890abcdef
必須。Google Workspace 管理者がセットアップした、Cloud Search ソースの ID。 |
サービス アカウント | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
必須。Google Workspace 管理者が作成した、インデクサ プラグインへのアクセスに必要な Cloud Search サービス アカウントの鍵ファイル。 |
次の例は、sdk-configuration.properties
ファイルを示しています。
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
構成ファイルには、Google 提供の構成パラメータを含めることもできます。これらのパラメータは、このプラグインがデータを Google Cloud Search API に push する方法に影響する可能性があります。たとえば、batch.*
パラメータ セットは、コネクタがリクエストを結合する方法を指定します。
構成ファイルでパラメータを定義しない場合は、デフォルト値(使用可能な場合)が使用されます。各パラメータの詳細については、Google 提供のコネクタ パラメータをご覧ください。
インデクサ プラグインは、インデックス登録するコンテンツのメタデータや構造化データが入力されるように構成できます。メタデータや構造化データの項目に入力される値は、インデックス登録する HTML コンテンツのメタタグから抽出することも、構成ファイルでデフォルト値を指定することもできます。
設定 | パラメータ |
タイトル | itemMetadata.title.field=movieTitle
itemMetadata.title.defaultValue=Gone with the Wind
デフォルトでは、インデックス登録するドキュメントのタイトルとして HTML title が使用されます。タイトルがない場合は、ドキュメント タイトルに対応する値を含むメタデータ属性を参照することも、デフォルト値を設定することもできます。 |
作成タイムスタンプ | itemMetadata.createTime.field=releaseDate
itemMetadata.createTime.defaultValue=1940-01-17
ドキュメント作成タイムスタンプの値を含むメタデータ属性。 |
最終更新時刻 | itemMetadata.updateTime.field=releaseDate
itemMetadata.updateTime.defaultValue=1940-01-17
ドキュメントの最終変更タイムスタンプの値を含むメタデータ属性。 |
ドキュメント言語 | itemMetadata.contentLanguage.field=languageCode
itemMetadata.contentLanguage.defaultValue=en-US
インデックス登録するドキュメントのコンテンツ言語。 |
スキーマ オブジェクト タイプ | itemMetadata.objectType=movie
サイトで使用されるオブジェクト タイプ( データソースのスキーマ オブジェクト定義で定義したもの)。このプロパティを指定しないと、コネクタは構造化データをインデックス登録しません。
注: この構成プロパティは、メタデータ属性ではなく値そのものを指します。接尾辞 |
日時書式
日時書式は、期待される書式をメタデータ属性で指定するものです。構成ファイルにこのパラメータが含まれていない場合は、デフォルト値が使用されます。次の表に、このパラメータを示します。
設定
パラメータ
追加の日時パターン
structuredData.dateTimePatterns=MM/dd/uuuu HH:mm:ssXXX
追加の java.time.format.DateTimeFormatter パターンのセミコロン区切りリスト。これらのパターンは、メタデータまたはスキーマ内の日付や日時の項目の文字列値を解析するときに使用されます。デフォルト値は空のリストですが、RFC 3339 と RFC 1123 の書式は常にサポートされています。
ステップ 3: Norconex HTTP Collector を構成する
zip アーカイブ norconex-committer-google-cloud-search-{version}.zip
には、サンプル構成ファイル minimum-config.xml
が含まれています。
サンプル ファイルをコピーして構成を開始することをおすすめします。
- Norconex HTTP Collector ディレクトリに移動します。
$ cd ~/norconex/norconex-collector-http-{version}/
- 構成ファイルをコピーします。
$ cp examples/minimum/minimum-config.xml gcs-crawl-config.xml
- 新しく作成したファイル(この例では
gcs-crawl-config.xml
)を編集し、次の表の説明に従って既存の<committer>
ノードと<tagger>
ノードを追加または置き換えます。
設定 | パラメータ |
<committer> node
|
<committer class="com.norconex.committer.googlecloudsearch.
GoogleCloudSearchCommitter">
必須。プラグインを有効にするには、ルートの <httpcollector> ノードの子として <committer> ノードを追加する必要があります。 |
<UploadFormat>
|
<uploadFormat>raw</uploadFormat>
省略可。インデクサ プラグインがドキュメント コンテンツを Google Cloud Search インデクサ API に push する形式。有効な値は次のとおりです。
デフォルト値は raw です。
|
BinaryContent Tagger <tagger> node
|
<tagger class="com.norconex.committer.googlecloudsearch.BinaryContentTagger"/>
<UploadFormat> の値が raw の場合は必須です。この場合、インデクサ プラグインでは、ドキュメントのバイナリ コンテンツ項目が使用可能である必要があります。BinaryContentTagger <tagger> ノードを <importer> / <preParseHandlers> ノードの子要素として追加する必要があります。 |
次の例は、gcs-crawl-config.xml
に加える必要がある変更を示しています。
<committer class="com.norconex.committer.googlecloudsearch.GoogleCloudSearchCommitter">
<configFilePath>/full/path/to/gcs-sdk-config.properties</configFilePath>
<uploadFormat>raw</uploadFormat>
</committer>
<importer>
<preParseHandlers>
<tagger class="com.norconex.committer.googlecloudsearch.BinaryContentTagger"/>
</preParseHandlers>
</importer>
ステップ 4: ウェブクロールを構成する
ウェブクロールを開始する前に、組織が検索結果で使用できるようにする情報のみが含まれるようにクロールを構成する必要があります。ウェブクロールの最も重要な設定は、<crawler>
ノードの一部であり、以下を含めることができます。
- 開始 URL
- クロールの最大深度
- スレッド数
必要に応じて、これらの構成値を変更します。ウェブクロールの設定および使用可能なすべての構成パラメータについて詳しくは、HTTP Collector の Configuration ページをご覧ください。
ステップ 5: ウェブクロールとコンテンツのアップロードを開始する
インデクサ プラグインをインストールして設定したら、ローカルモードで独自に実行できます。
次の例は、必要なコンポーネントが Linux システムのローカル ディレクトリにあることを前提としています。次のコマンドを実行します。
$ ./collector-http[.bat|.sh] -a start -c gcs-crawl-config.xml
JEF Monitor でクローラをモニタリングする
Norconex JEF(Job Execution Framework)Monitor は、Norconex Web Crawler(HTTP Collector)プロセスおよびジョブの進行状況をモニタリングするためのグラフィカルなツールです。このユーティリティの設定方法に関する詳しいチュートリアルについては、Monitor Your Crawler's Progress with JEF Monitor をご覧ください。