Google Cloud Search を設定し、ユーザーにウェブ コンテンツを提供するには、オープンソースのウェブ クローラーである Apache Nutch 用の Google Cloud Search インデクサ プラグインをデプロイします。
ウェブクロールを開始すると、Apache Nutch はウェブをクロールし、インデクサ プラグインを使用してドキュメント コンテンツの元のバイナリ(またはテキスト)バージョンを Google Cloud Search Indexing API にアップロードします。Indexing API は、コンテンツをインデックスに登録し、その結果をユーザーに表示します。
重要な考慮事項
システム要件
システム要件 | |
---|---|
オペレーティング システム | Linux のみ:
<ph type="x-smartling-placeholder">
|
ソフトウェア |
|
Apache Tika ドキュメント タイプ | Apache Tika 1.18 でサポートされているドキュメント形式 |
インデクサ プラグインをデプロイする
次の手順では、インデクサ プラグインをインストールし、指定された URL をクロールして結果を Cloud Search に返すようにそのコンポーネントを構成する方法について説明します。
前提条件
Cloud Search Apache Nutch インデクサ プラグインをデプロイする前に、Google Cloud Search とデータソースの接続に必要な情報を収集します。
- Google Workspace の秘密鍵(サービス アカウント ID を含む)。秘密鍵の取得について詳しくは、以下をご覧ください。 Google Cloud Search API へのアクセスを構成する
- Google Workspace データソースの ID。データソース ID の取得について詳しくは、以下をご覧ください。 検索するデータソースを追加します。
ステップ 1: プラグイン ソフトウェアと Apache Nutch をビルドしてインストールする
GitHub からインデクサ プラグイン リポジトリのクローンを作成します。
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
必要なバージョンのインデクサ プラグインを確認します。
$ git checkout tags/v1-0.0.5
インデクサ プラグインをビルドする。
$ mvn package
インデクサ プラグインをビルドするときにテストをスキップするには、
mvn package -DskipTests
を使用します。Apache Nutch 1.15 をダウンロード し、Apache Nutch のインストール手順を実施します。
手順 2 で作成した
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
をフォルダに抽出します。plugins/indexer-google-cloudsearch
フォルダを Apache Nutch インストール プラグイン フォルダ(apache-nutch-1.15/plugins
)にコピーします。
ステップ 2: インデクサ プラグインを構成する
Apache Nutch インデクサ プラグインを構成するには、plugin-configuration.properties
というファイルを作成します。
構成ファイルでは、Google Cloud Search データソースにアクセスするために必要な次のパラメータを指定する必要があります。
設定 | パラメータ |
データソースの ID | api.sourceId = 1234567890abcdef
必須。Google Workspace 管理者がインデクサ プラグイン用に設定した Google Cloud Search ソースの ID。 |
サービス アカウント | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
必須。インデクサ プラグインにアクセスするために Google Workspace 管理者が作成した Google Cloud Search サービス アカウント キーファイル。 |
次の例は、必須パラメータを含む構成ファイルの例を示しています。
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
構成ファイルには、インデクサ プラグインの動作を制御する他のパラメータを含めることもできます。また、
プラグインは、Cloud Search API(defaultAcl.*
と batch.*
)にデータを push します。インデクサ プラグインがメタデータと構造化データを入力する方法を構成することもできます。
これらのパラメータの説明については、 Google 提供のコネクタ パラメータ。
ステップ 3: Apache Nutch を構成する
conf/nutch-site.xml
を開き、次のパラメータを追加します。設定 パラメータ プラグインに含まれるもの plugin.includes = text
必須。使用するプラグインのリスト。少なくとも次の要素を含める必要があります。
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xml
では、このプロパティのデフォルト値が提供されますが、手動でindexer-google-cloudsearch
を追加する必要があります。メタタグ名 metatags.names = text
省略可。 対応するデータソースのスキーマですメタタグ用に Apache Nutch を設定する方法について詳しくは、以下をご覧ください。 Nutch-parse メタタグ。
次の例は、
nutch-site.xml
に必要な変更を示しています。<property> <name>plugin.includes</name> <value>protocol-(http|httpclient)|urlfilter-regex|index-(basic|more| metadata)|query-(basic|site|url|lang)|indexer-google-cloudsearch|nutch-extensionpoints|parse-(text|html|msexcel|msword|mspowerpoint|pdf|metatags)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)|parse-(html|tika|metatags)|index-(basic|anchor|more|metadata)</value> </property>
conf/index-writers.xml
を開き、次のセクションを追加します。<writer id="indexer_google_cloud_search_1" class="org.apache.nutch.indexwriter.gcs.GoogleCloudSearchIndexWriter"> <parameters> <param name="gcs.config.file" value="path/to/sdk-configuration.properties"/> </parameters> <mapping> <copy /> <rename /> <remove /> </mapping> </writer>
<writer> セクションには、次のパラメータが含まれています。
設定 パラメータ Google Cloud Search 構成ファイルのパス gcs.config.file = path
必須。Google Cloud Search 構成ファイルのフル(絶対)パス。
アップロード形式 gcs.uploadFormat = text
省略可。インデクサ プラグインがドキュメント コンテンツを Google Cloud Search インデクサ API に push する形式。指定できる値は次のとおりです。
raw
: インデクサ プラグインは、変換されていない元のドキュメント コンテンツを push します。text
: インデクサ プラグインは、抽出されたテキスト コンテンツを push します。デフォルト値はraw
です。
ステップ 4: ウェブクロールを設定する
ウェブクロールを開始する前に、組織が検索できるようにする情報のみが含まれるようにクロールを設定します 表示されます。このセクションでは、概要を説明します。ウェブクロールの設定方法について詳しくは、 Nutch のチュートリアル
開始 URL を設定します。
開始 URL では、Apache Nutch ウェブクローラがコンテンツのクロールを開始する場所を制御します。開始 URL は、ウェブ クローラーが目的のコンテンツに到達できるようにして 特定のクロールに含めるには、リンクをたどって行います。開始 URL は必須です。
開始 URL を設定するには:
作業ディレクトリを nutch インストール ディレクトリに変更します。
$ cd ~/nutch/apache-nutch-X.Y/
URL 用のディレクトリを作成します。
$ mkdir urls
seed.txt
という名前のファイルを作成し、URL を 1 行に 1 つずつ入力してください。
「従う」ルールと「従わない」ルールを設定する。
「URL をフォロー」ルールでは、クロールして Google Cloud Search インデックスに含める URL を管理します。ウェブ クローラーは、URL を URL ルールに従います。これらのルールに適合した URL のみがクロールされて、インデックスに登録されます。
「従わない」ルールでは、URL をクロールの対象から Google Cloud Search インデックスから除外します。クロールしないパターンが URL に含まれている場合、ウェブクローラはその URL をクロールしません。
「対象にする URL」ルールと「除外する URL」ルールを設定するには:
作業ディレクトリを nutch インストール ディレクトリに変更します。
$ cd ~/nutch/apache-nutch-X.Y/
「従う/従わない」ルールを変更するには
conf/regex-urlfilter.txt
を編集します: \$ nano conf/regex-urlfilter.txt
正規表現を「+」記号でまたは「-」プレフィックス( 例を示します。自由形式の式は使用できます。
# skip file extensions -\.(gif|GIF|jpg|JPG|png|PNG|ico) # skip protocols (file: ftp: and mailto:) -^(file|ftp|mailto): # allow urls starting with https://support.google.com/gsa/ +^https://support.google.com/gsa/ # accept anything else # (commented out due to the single url-prefix allowed above) #+.
クロール スクリプトを編集します。
gcs.uploadFormat
パラメータが指定されていないか、「raw」に設定されている場合は、追加する必要があります 「-addBinaryContent -base64
」nutch index
に渡す引数 使用できます。これらの引数は、バイナリ コンテンツを含めるよう Nutch Indexer モジュールに指示します インデクサ プラグインの呼び出し時に Base64 で渡されます。./bin/crawl スクリプトに これらの引数がデフォルトで使用されます。apache-nutch-1.15/bin
でcrawl
スクリプトを開きます。次の例のように、
-addBinaryContent -base64
オプションをスクリプトに追加します。if $INDEXFLAG; then echo "Indexing $SEGMENT to index" __bin_nutch index $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb -addBinaryContent -base64 -linkdb "$CRAWL_PATH"/linkdb "$CRAWL_PATH"/segments/$SEGMENT echo "Cleaning up index if possible" __bin_nutch clean $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb else echo "Skipping indexing ..."
ステップ 5: ウェブクロールとコンテンツのアップロードを開始する
インデクサ プラグインをインストールして設定したら、Google Cloud 上で実行できます。
設定されます。./bin
のスクリプトを使用してクロールジョブを実行するか、
Nutch の各コマンドを定義します。
次の例は、必要なコンポーネントがローカルに配置されていることを前提としています。
されます。apache-nutch-1.15
ディレクトリから次のコマンドを使用して Nutch を実行します。
$ bin/crawl -i -s urls/ crawl-test/ 5
クロールログは、標準出力(ターミナル)または logs/
ディレクトリで確認できます。宛先
ロギング出力を指示するか、より詳細なロギングを
conf/log4j.properties
。