您可以為 Apache Nutch 這個開放原始碼網路檢索器部署 Google Cloud Search 索引器外掛程式,設定 Google Cloud Search 為使用者提供網路內容。
開始網頁檢索時,Apache Nutch 會檢索網路,並使用索引外掛程式外掛程式將文件內容的原始二進位 (或文字) 版本上傳至 Google Cloud Search Indexing API。索引 API 會將內容編入索引,並將結果提供給使用者。
重要事項
系統需求
系統需求 | |
---|---|
作業系統 | 僅限 Linux:
|
軟體 |
|
Apache Tika 文件類型 | 阿帕契 1.18 支援的文件格式 |
部署索引器外掛程式
下列步驟說明如何安裝索引器外掛程式並設定其元件,以檢索指定網址,並將結果傳回 Cloud Search。
先備知識
部署 Cloud Search Apache Nutch 索引器外掛程式之前,請先收集連結 Google Cloud Search 與資料來源的必要資訊:
- Google Workspace 私密金鑰 (包含服務帳戶 ID)。如要瞭解如何取得私密金鑰,請參閱 設定 Google Cloud Search API 的存取權。
- Google Workspace 資料來源 ID。如要瞭解如何取得資料來源 ID,請參閱「新增要搜尋的資料來源」一文。
步驟 1:建構及安裝外掛程式軟體和 Apache Nutch
從 GitHub 複製索引器外掛程式存放區。
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
查看需要的索引外掛程式版本:
$ git checkout tags/v1-0.0.5
建構索引器外掛程式。
$ mvn package
如要在建構索引器外掛程式時略過測試,請使用
mvn package -DskipTests
。將步驟 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
開啟
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>
開啟
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:設定網頁檢索
啟動網頁檢索前,請先設定檢索,讓檢索只包含貴機構希望在搜尋結果中顯示的資訊。本節提供總覽;如要進一步瞭解如何設定網路檢索,請參閱荷蘭教學課程。
設定起始網址。
起始網址會決定 Apache Nutch 網路檢索器開始檢索內容的位置。起始網址應能讓網路檢索器依照連結,取得您要納入特定檢索的所有內容。必須提供起始網址。
如何設定起始網址:
將工作目錄變更為詳細資料安裝目錄:
$ cd ~/nutch/apache-nutch-X.Y/
為網址建立目錄:
$ mkdir urls
建立名為
seed.txt
的檔案,並在其中列出網址 (每行 1 個網址)。
以及設定後續與不遵守規則。
遵循網址規則,控管要檢索哪些網址並納入 Google Cloud Search 索引。網路檢索器會根據下列網址規則檢查網址。系統只會檢索符合這些規則的網址並建立索引。
「請勿遵循」規則會排除網址,讓 Google 無法進行檢索並納入 Google Cloud Search 索引。如果網址包含不檢索格式,網路檢索器不會檢索該網址。
如何設定追蹤與不遵循網址規則:
將工作目錄變更為詳細資料安裝目錄:
$ cd ~/nutch/apache-nutch-X.Y/
編輯
conf/regex-urlfilter.txt
即可變更追蹤/不遵循規則:\$ nano conf/regex-urlfilter.txt
輸入含有「+」或「-」前置字串的規則運算式,即可追蹤 / 不要追蹤網址模式和副檔名,如以下範例所示。允許使用開放式運算式。
# 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) #+.
編輯檢索指令碼。
如果缺少
gcs.uploadFormat
參數或將其設為「raw」,您必須新增「-addBinaryContent -base64
」引數來傳遞至nutch index
指令。這些引數會指示 Nutch Indexer 模組在叫用索引器外掛程式時,在 Base64 中加入二進位檔內容。根據預設,./bin/index 指令碼沒有這些引數。- 在
apache-nutch-1.15/bin
中開啟crawl
指令碼。 將
-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
。