部署 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 文件類型 阿帕契 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 剖析中繼標記

    以下範例為 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 模組在叫用索引器外掛程式時,在 Base64 中加入二進位檔內容。根據預設,./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