部署 Apache Nutch Indexer 外掛程式

您可以為 Apache Nutch 這個開放原始碼網路檢索器部署 Google Cloud Search 索引器外掛程式,設定 Google Cloud Search 為使用者提供網路內容。

開始網頁檢索時,Apache Nutch 會檢索網路,並使用索引外掛程式外掛程式將文件內容的原始二進位 (或文字) 版本上傳至 Google Cloud Search Indexing API。索引 API 會將內容編入索引,並將結果提供給使用者。

重要事項

系統需求

系統需求
作業系統 僅限 Linux:
  • 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 支援的文件格式

部署索引器外掛程式

下列步驟說明如何安裝索引器外掛程式並設定其元件,以檢索指定網址,並將結果傳回 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 Indexer 外掛程式,請建立名為 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.*。您也可以設定索引外掛程式填入中繼資料和結構化資料的方式。

如需這些參數的說明,請前往 Google 提供的連接器參數

步驟 3:設定 Apache Nutch

  1. 開啟 conf/nutch-site.xml 並新增下列參數:

    設定 參數
    外掛程式包含 plugin.includes = text

    必要欄位。要使用的外掛程式清單。其中必須至少包括:

    • 索引基本
    • 索引更多
    • indexer-google-cloudsearch
    conf/nutch-default.xml 會提供此屬性的預設值,但您必須一併手動為該屬性新增 indexer-google-cloudsearch
    中繼標記名稱 metatags.names = text

    選用設定。以半形逗號分隔的標記清單,這些標記對應至 對應的資料來源結構定義如要進一步瞭解如何為中繼標記設定 Apache Nutch,請前往 荷蘭剖析中繼標記

    以下範例為 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 的格式。有效值如下:

    • raw:索引外掛程式會推送未轉換的原始文件內容。
    • text:索引外掛程式會推送擷取的文字內容。預設值為 raw

步驟 4:設定網頁檢索

啟動網頁檢索前,請先設定檢索,讓檢索只包含貴機構希望在搜尋結果中顯示的資訊 也就是預測結果本節會概略說明。如要進一步瞭解如何設定網頁檢索,請參閱 荷蘭教學課程

  1. 設定起始網址。

    起始網址會決定 Apache Nutch 網路檢索器開始檢索您網站的位置 內容。起始網址應能讓網路檢索器找到您想要的所有內容 包含在特定的檢索中。必須提供起始網址。

    如何設定起始網址:

    1. 將工作目錄變更為詳細資料安裝目錄:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. 為網址建立目錄:

      $ mkdir urls
    3. 建立名為 seed.txt 的檔案,並在其中列出網址 (每行 1 個網址)。

  2. 以及設定後續與不遵守規則。

    遵循網址規則,控管要檢索哪些網址並納入 Google Cloud Search 索引。網路檢索器會根據 依循網址規則系統只會檢索符合這些規則的網址並建立索引。

    「請勿遵循」規則會排除網址,讓 Google 無法進行檢索並納入 Google Cloud Search 索引。如果網址含有不檢索格式,網路檢索器 就不會進行檢索。

    如何設定追蹤與不遵循網址規則:

    1. 將工作目錄變更為詳細資料安裝目錄:

      $ 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 -base64」傳遞至 nutch index 的引數 指令這些引數會指示 Nutch Indexer 模組包含二進位內容 。./bin/index 指令碼沒有 這些引數

    1. apache-nutch-1.15/bin 中開啟 crawl 指令碼。
    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:開始檢索網頁和上傳內容

安裝並設定索引器外掛程式後,您可以在 並在本機模式下使用容器使用 ./bin 的指令碼執行檢索工作或 個別 Nutch 指令

以下範例假設必要元件位於 目錄。從 apache-nutch-1.15 目錄執行下列指令,以執行 Nutch:

$ bin/crawl -i -s urls/ crawl-test/ 5

檢索記錄位於 std 輸出 (終端機) 或 logs/ 目錄中。目的地: 可指示系統輸出記錄輸出,或 conf/log4j.properties