部署 Apache Nutch Indexer 外掛程式

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

開始網頁檢索時,Apache Nutch 會檢索網頁,並使用索引外掛程式將文件內容的原始二進位 (或文字) 版本上傳至 Google Cloud Search 索引 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. target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip (在步驟 2 中建構) 解壓縮至資料夾。將 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

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

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml 會提供這項屬性的預設值,但您也必須手動新增 indexer-google-cloudsearch
    中繼標記名稱 metatags.names = text

    (選用步驟) 以半形逗號分隔的代碼清單,對應至相應資料來源結構定義中的屬性。如要進一步瞭解如何為中繼標記設定 Apache Nutch,請參閱「Nutch-parse metatags」。

    以下範例顯示 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:設定網頁檢索

開始檢索網站前,請先設定檢索作業,只納入貴機構想在搜尋結果中提供的資訊。本節提供總覽資訊,如要進一步瞭解如何設定網頁檢索,請參閱 Nutch 教學課程

  1. 設定啟動網址。

    起始網址可控制 Apache Nutch 網頁檢索器開始檢索您內容的位置。網頁檢索器應能透過起始網址中的連結,存取您想在特定檢索中納入的所有內容。必須提供起始網址。

    如要設定起始網址,請按照下列步驟操作:

    1. 將工作目錄變更為 nutch 安裝目錄:

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

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

  2. 設定追蹤和不追蹤規則。

    網址規則可控制要檢索哪些網址,以及將哪些網址納入 Google Cloud Search 索引。網頁檢索器會根據下列網址規則檢查網址。系統只會檢索及建立符合這些規則的網址索引。

    不追蹤規則會排除網址,避免系統檢索這些網址並將其納入 Google Cloud Search 索引。如果網址包含「請勿檢索」模式,網頁檢索器就不會檢索該網址。

    如要設定追蹤和不追蹤網址規則,請按照下列步驟操作:

    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 -base64」引數,傳遞至 nutch index 指令。這些引數會告知 Nutch Indexer 模組,在叫用索引外掛程式時,將二進位內容納入 Base64 中。./bin/crawl 指令碼預設沒有這些引數。

    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

檢索記錄會顯示在標準輸出 (終端機) 或 logs/ 目錄中。如要導向記錄輸出內容或進行更詳細的記錄,請編輯 conf/log4j.properties