Apache Nutch インデクサ プラグインのデプロイ

Google Cloud Search を設定し、ユーザーにウェブ コンテンツを提供するには、オープンソースのウェブ クローラーである Apache Nutch 用の Google Cloud Search インデクサ プラグインをデプロイします。

ウェブクロールを開始すると、Apache Nutch はウェブをクロールし、インデクサ プラグインを使用してドキュメント コンテンツの元のバイナリ(またはテキスト)バージョンを Google Cloud Search Indexing API にアップロードします。Indexing API は、コンテンツをインデックスに登録し、その結果をユーザーに表示します。

重要な考慮事項

システム要件

システム要件
オペレーティング システム Linux のみ: <ph type="x-smartling-placeholder">
    </ph>
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10(64 ビット)
ソフトウェア
  • Apache Nutch バージョン 1.15。インデクサ プラグイン ソフトウェアには、このバージョンの Nutch が含まれています。
  • インデクサ プラグインを実行するコンピュータに Java JRE 1.8 がインストールされていること
Apache Tika ドキュメント タイプ Apache Tika 1.18 でサポートされているドキュメント形式

インデクサ プラグインをデプロイする

次の手順では、インデクサ プラグインをインストールし、指定された URL をクロールして結果を Cloud Search に返すようにそのコンポーネントを構成する方法について説明します。

前提条件

Cloud Search Apache Nutch インデクサ プラグインをデプロイする前に、Google Cloud Search とデータソースの接続に必要な情報を収集します。

ステップ 1: プラグイン ソフトウェアと Apache Nutch をビルドしてインストールする

  1. GitHub からインデクサ プラグイン リポジトリのクローンを作成します。

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. 必要なバージョンのインデクサ プラグインを確認します。

    $ git checkout tags/v1-0.0.5
  3. インデクサ プラグインをビルドする。

    $ mvn package

    インデクサ プラグインをビルドするときにテストをスキップするには、mvn package -DskipTests を使用します。

  4. Apache Nutch 1.15ダウンロード し、Apache Nutch のインストール手順を実施します。

  5. 手順 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 を構成する

  1. 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>
    
  2. 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 のチュートリアル

  1. 開始 URL を設定します。

    開始 URL では、Apache Nutch ウェブクローラがコンテンツのクロールを開始する場所を制御します。開始 URL は、ウェブ クローラーが目的のコンテンツに到達できるようにして 特定のクロールに含めるには、リンクをたどって行います。開始 URL は必須です。

    開始 URL を設定するには:

    1. 作業ディレクトリを nutch インストール ディレクトリに変更します。

      $ cd ~/nutch/apache-nutch-X.Y/
    2. URL 用のディレクトリを作成します。

      $ mkdir urls
    3. seed.txt という名前のファイルを作成し、URL を 1 行に 1 つずつ入力してください。

  2. 「従う」ルールと「従わない」ルールを設定する。

    「URL をフォロー」ルールでは、クロールして Google Cloud Search インデックスに含める URL を管理します。ウェブ クローラーは、URL を URL ルールに従います。これらのルールに適合した URL のみがクロールされて、インデックスに登録されます。

    「従わない」ルールでは、URL をクロールの対象から Google Cloud Search インデックスから除外します。クロールしないパターンが URL に含まれている場合、ウェブクローラはその URL をクロールしません。

    「対象にする URL」ルールと「除外する URL」ルールを設定するには:

    1. 作業ディレクトリを nutch インストール ディレクトリに変更します。

      $ cd ~/nutch/apache-nutch-X.Y/
    2. 「従う/従わない」ルールを変更するには conf/regex-urlfilter.txt を編集します: \

      $ nano conf/regex-urlfilter.txt
    3. 正規表現を「+」記号でまたは「-」プレフィックス( 例を示します。自由形式の式は使用できます。

      # 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)
      #+.
      
  3. クロール スクリプトを編集します。

    gcs.uploadFormat パラメータが指定されていないか、「raw」に設定されている場合は、追加する必要があります 「-addBinaryContent -base64nutch index に渡す引数 使用できます。これらの引数は、バイナリ コンテンツを含めるよう Nutch Indexer モジュールに指示します インデクサ プラグインの呼び出し時に Base64 で渡されます。./bin/crawl スクリプトに これらの引数がデフォルトで使用されます。

    1. apache-nutch-1.15/bincrawl スクリプトを開きます。
    2. 次の例のように、-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