部署 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
    • 索引更多
    • 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 indexer API 的格式。以下為有效值:

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

步驟 4:設定網頁檢索

開始網頁檢索前,請先設定檢索,使其只包含貴機構要顯示在搜尋結果中的資訊。本節提供總覽;如要進一步瞭解如何設定網路檢索,請參閱 Nutch 教學課程

  1. 設定起始網址。

    起始網址控制 Apache Nutch 網路檢索器開始檢索內容的位置。起始網址應可讓網路檢索器透過點選連結,找到您要納入特定檢索的全部內容。必須提供起始網址。

    如何設定起始網址:

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

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

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

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

    下列網址規則可控管要檢索哪些網址並納入 Google Cloud Search 索引。網路檢索器會根據追蹤網址規則檢查網址。系統只會檢索符合這些規則的網址,並建立索引。

    「不追蹤」規則會排除網址,不讓 Google 檢索,並納入 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 模組叫用索引工具外掛程式時,這些引數會指示 Nutch Indexer 模組在 Base64 中納入二進位內容。根據預設,./bin/檢索指令碼沒有這些引數。

    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