Sun Java logo     上一頁      目錄      索引      下一頁     

Sun logo
Sun Java System Portal Server 6 2004Q2 管理員指南 

第 11 章
管理搜尋引擎自動器

本章會說明 Sun Java™ System Portal Server 搜尋引擎自動器及其對應的配置檔。將討論下列主題:


搜尋引擎自動器簡介

搜尋引擎自動器是一個在其網域中識別與報告資源的代理程式。使用兩種過濾器可以執行這個作業:列舉過濾器與產生過濾器。

列舉過濾器使用網路通訊協定來找出資源。它會測試每個資源,且若符合適當的準則,會將之列舉。例如,列舉過濾器可以從 HTML 檔案中擷取超文字連結並使用連結找出其他資源。

產生過濾器會測試每個資源以決定是否應建立資源說明 (RD)。若資源通過測試,產生過濾器會建立一個儲存於搜尋引擎資料庫的 RD。

自動器的作業方式

圖 11-1 會說明搜尋引擎自動器的作業方式。圖 11-1 中,自動器會檢驗 URL 和與其相關的網路資源。每個資源會由列舉器與產生器測試。若資源通過列舉測試,自動器會檢查是否還有其他的 URL。若資源通過產生器測試,自動器會產生儲存於搜尋引擎資料庫的資源說明。

圖 11-1 自動器的作業方式

本圖將說明 Robot 的作業方式。請參閱圖之後的文字以獲得過程說明。

自動器配置檔

自動器配置檔案會定義搜尋引擎自動器的運作方式。這些檔案位於 /var/opt/SUNWps/http-hostname-domain/portal/config 目錄中。表 11-1 會提供其中每個自動器配置檔的說明。本表格包括兩欄。第一欄會列出配置檔,第二欄會說明檔案內容。

表 11-1 自動器配置檔

自動器配置檔

說明

classification.conf

包含用來分類由自動器產生的 RD 的規則。

filter.conf

包含所有「搜尋引擎」自動器可用於列舉與產生的過濾器。包括相同的列舉與產生過濾器過濾規則,以確保變更單一規則可以用於兩種類型的過濾器。

依據參照,這個檔案也會包括儲存於 filterrules.conf 的過濾規則。

filterrules.conf

包括起點 (也稱為種子 URL) 與過濾規則。

robot.conf

定義大部分的自動器作業參數。除此之外,這個檔案會將自動器指向 filter.conf 檔案中適用的過濾器。


備註     

搜尋服務會使用兩個其他配置檔:convert.conf import.conf。這些檔案是由「搜尋」伺服器所產生,而且在一般情況下不應手動編輯。


因為您可以藉由使用「搜尋引擎管理介面」設定大部分的參數,一般來說不需要編輯 robot.conf 檔案。

然而,進階使用者可以手動編輯此檔案以設定無法經由此介面設定的參數。


設定自動器程序參數

robot.conf 檔案會定義許多自動器的選項,包括將自動器指向 filter.conf 中適合的過濾器。(由於較舊版本的向下相容性,robot.conf 也可以包含種子 URL。)

Sun Java System Identity Server 管理主控台會用於編輯 robot.conf 檔案。請注意,您可以手動編輯的參數在使用者可修改的參數章節中會有詳細說明。

最重要的參數為 enumeration-filtergeneration-filter, 其會決定自動器用於列舉與產生的過濾器。這些參數的預設值為 enumeration-defaultgeneration-default,也就是在 filter.conf 檔案中依預設提供的過濾器名稱。

所有過濾器必須定義於 filter.conf 檔案中。若在 filter.conf 檔案中定義您自己的過濾器,您必須將所有必須的參數新增至 robot.conf

例如,若您定義一個名為 my-enumerator 的新列舉過濾器,則必須新增下列參數至 robot.conf

enumeration-filter=my-enumerator


過濾程序

自動器會使用過濾器決定要處理何種資源,與如何處理。當自動器發現資源參照與資源本身,會套用過濾器至每個資源以將其列舉並決定是否產生資源說明以儲存至搜尋引擎資料庫中。

自動器會檢驗一個或多個種子 URL,套用過濾器然後將過濾器套用至由列舉種子 URL 產生的URL 等等。種子 URL 定義於 filterrules.conf 檔案中。

過濾器會執行所有要求的初始化作業並套用比較測試至目前資源。每個測試的目標為允許或拒絕資源。過濾器也擁有關閉階段,在此階段將執行所有必要清除作業。

若允許資源,則意味允許其繼續通過過濾器。若拒絕資源,則不會繼續處理資源。對於被拒絕的資源,過濾器不會採取更進一步的動作。若沒有拒絕資源,自動器最後會將之列舉,嘗試找出進一步的資源。產生器也可能會為其建立資源說明。

這些作業不一定會被連結。某些資源會被列舉,其他則會產生 RD。很多資源會同時被列舉與產生 RD。例如,若資源位於 FTP 目錄中,一般情況下資源應該不會有為其產生的 RD。然而,自動器可能會在 FTP 目錄中列舉個別的檔案。包含至其他文件連結的 HTML 文件可以接收 RD 也可以導致列舉連結的文件。

下列章節會詳細說明過濾器程序:

過濾器程序的階段

列舉與產生過濾器的過濾程序中都擁有五個階段。他們兩者有四個共用階段:設定 ─ 執行初始化作業。在自動器的有效使用期中只會發生一次。中繼資料 ─ 根據資源可用的中繼資料過濾資源。在從網路上擷取資源之前,每個資源中只會發生一次中繼資料過濾。表 11-2 會列出共用中繼資料類型的範例。本表格包括三欄。第一欄會列出中繼資料類型、第二欄會提供說明,第三欄會提供範例。資料 ─ 根據其資料過濾資源。在從網路上擷取資源之後,每個資源都會完成一次資料過濾。可用於過濾的資料包括:,與關閉 ─ 執行所有必須的終止作業。在自動器的使用有效期中會發生一次。若資源讓其通過「資料」階段,則其會位於列舉 ─ 列舉目前資源以確定其是否指向其他待檢驗的資源。產生 ─ 產生資源的資源說明 (RD) 並將之儲存於搜尋引擎資料庫中。階段,會根據是列舉或產生過濾器而有所不同。

階段如下所示:

過濾器語法

filter.conf 檔案包含列舉與產生過濾器的定義。這個檔案可以包含多個用於列舉與產生的過濾器。請注意,自動器可以決定使用哪個過濾器,因為其已由 robot.conf 檔案中的 enumeration-filtergeneration-filter 參數所指定。

過濾器定義擁有一個定義良好的結構:標題、內文與結尾。標題會識別過濾器的開始並公佈其名稱,例如:

<Filter name="myFilter">

內文由一系列的過濾器指令所組成,其會定義過濾器在設定、測試、列舉或產生,與關閉期間的運作方式。每個指令會指定一個功能,且若適用,會為功能指定參數。

結尾標記符為 </Filter>

程式碼範例 11-1 顯示了名稱為 enumeration1 的過濾器

程式碼範例 11-1 列舉檔案語法

<Filter name="enumeration1>

Setup fn=filterrules-setup config=./config/filterrules.conf

# Process the rules

MetaData fn=filterrules-process

# Filter by type and process rules again

Data fn=assign-source dst=type src=content-type

Data fn=filterrules-process

# Perform the enumeration on HTML only

Enumerate enable=true fn=enumerate-urls max=1024 type=text/html

# Cleanup

Shutdown fn=filterrules-shutdown

</Filter>

過濾器指令

過濾器指令會使用「自動器應用程式功能 (RAF)」執行作業。執行的運作與流程與 NSAPI 指令和 obj.conf 檔案的「伺服器應用程式功能 (SAF)」類似。類似 NSAPI 與 SAF,使用參數區段,也稱為 pblocks,儲存與傳送資料。

有六個自動器指令或 RAF 類,對應至列示於過濾程序的過濾階段與作業:

每個指令擁有自己的自動器應用程式功能。例如, Metadata 與 Data 指令有過濾功能、Enumerate 指令有列舉功能、Generate 指令有產生功能等等。

內建的自動器應用程式功能和撰寫自己自動器應用程式功能的指示皆會在「Sun Java System Portal Server 6 2004Q2 Developer's Guide」中有所解釋。

撰寫或修改過濾器

在大部分的情況下,您不需要撰寫全新的過濾器。您可以使用管理主控台建立大部分的過濾器。隨後您可以修改 filter.conffilterrules.conf 檔案以做出想要的變更。這些檔案會位於 /var/opt/SUNWps/http-hostname-domain/portal 目錄中。

然而,若您希望建立更複雜的參數集,則需要編輯由自動器使用的配置檔。

在撰寫或編輯過濾器時,請注意下列幾點:

對於可以在 robot.conf 檔案中修改的參數、可以用於 filter.conf 檔案的自動器應用程式功能,與如何建立自己的自動器應用程式功能的討論,請參閱「Sun Java System Portal Server 6 2004Q2 Developer's Guide」。


使用者可修改的參數

robot.conf 檔案會定義許多自動器選項,包括將自動器指向在 filter.conf 檔案中適當的過濾器。由於較舊版本的向下相容性,robot.conf 也可以包含種子 URL。

因為您可以藉由使用管理主控台設定大部分的參數,一般來說不需要編輯 robot.conf 檔案。然而,進階使用者可以手動編輯這個檔案,以設定無法經由此管理主控台設定的參數。有關這個檔案的範例,請參閱robot.conf 檔案範例

表 11-3 會列出在 robot.conf 檔案中使用者可以修改的參數。表格第一欄會列出參數、第二欄會提供參數的說明,第三欄會提供範例。

表 11-3 使用者可修改的參數

參數

說明

範例

auto-proxy

指定自動器的代理程式設定值。可以使用代理伺服器或 JavaScript 檔案自動配置代理程式。有關詳細資訊,請參閱「Sun Java System Portal Server 6 2004Q2 管理員指南」

auto-proxy="http://proxy_server/proxy.pac"

bindir

指定自動器是否要新增連結目錄至 PATH 環境。對使用者而言,這是一個額外的 PATH,使用者可以在自動器中執行外部程式,例如由 cmd-hook 參數指定的外部程式。

bindir=path

cmd-hook

指定外部的完成程序檔以在自動器完成一次執行作業之後執行。這必須要是指令名稱的一個完整路徑。自動器會在 /var/opt/SUNWps/ 目錄中執行這個程序檔。

沒有預設值。

必須為欲執行的指令至少註冊一個 RD。

有關撰寫完成程序檔的資訊,請參閱「Sun Java System Portal Server 6 2004Q2 Developer's Guide」。

cmd-hook='ommand-string'

沒有預設值。

command-port

指定自動器用於偵聽以接受來自其他程式指令的插槽,例如「管理介面」或自動器控制面板。

為了安全理由,自動器僅可接受來自本地主機的指令,除非 remote-access 設定為 yes

command-port=port_number

connect-timeout

指定允許網路回應連接請求的最長時間。

預設為 120 秒。

command-timeout=seconds

convert-timeout

指定允許文件轉換的最長時間。

預設為 600 秒。

convert-timeout=seconds

depth

指定自動器將檢驗的種子 URL (也稱為起點) 的連結數。這個參數會為沒有指定深度的所有種子 URL 設定預設值。

預設為 10。

值負 1 (depth=-1) 表示連結深度為無限。

depth=integer

email

指定執行自動器者的電子郵件位址。

電子郵件位址是使用 HTTP 請求標題的使用者代理程式所傳送,因此網路管理員可以聯繫在他們站台上執行自動器的人。

預設為 user@domain

email=user@hostname

enable-ip

為已建立的每個 RD 的 URL 產生 IP 位址。

預設為 true

enable-ip=[true | yes | false | no]

enable-rdm-probe

確定伺服器是否支援 RDM,自動器會使用這個參數決定是否查詢每個其所遇到的伺服器。若伺服器支援 RDM,則自動器將不會嘗試列舉伺服器的資源,因為伺服器可以作為其本身的資源說明伺服器。

預設為 false

enable-rdm-probe=[true | false | yes | no]

enable-robots-txt

確定自動器是否應該檢查每個造訪的站台的 robots.txt 檔案 (若有的話)。

預設為 yes。

enable-robots-txt=[true | false | yes | no]

engine-concurrent

指定自動器要使用的預建立執行緒的數目。

預設為 10。

這個參數無法透過管理主控台互動式設定。

engine-concurrent=[1..100]

enumeration-filter

指定由自動器使用以決定是否應列舉資源的列舉過濾器。值必須是定義於 filter.conf 檔案的過濾器名稱。

預設為 enumeration-default

這個參數無法透過管理主控台互動式設定。

enumeration-filter=enumfiltername

generation-filter

指定由自動器使用以決定是否應為資源產生資源說明的產生過濾器。值必須是定義於 filter.conf 檔案的過濾器名稱。

預設為 generation-default

這個參數無法透過管理主控台互動式設定。

generation-filter=genfiltername

index-after-ngenerated

指定自動器在為搜尋引擎批次處理 RD 之前收集 RD 應持續的分鐘數。

若無指定這個參數,則將被設定為 256 分鐘。

index-after-ngenerated=30

loglevel

指定記錄層級。loglevel 值如下所示:

  • 0 級:只記錄嚴重錯誤
  • 1 級:也記錄 RD 產生活動 (預設)
  • 2 級:也記錄擷取活動
  • 3 級:也記錄過濾活動
  • 4 級:也記錄出產活動
  • 5 級:也記錄擷取進度

預設值為 1。

loglevel=[0...100]

max-connections

指定自動器可以執行的最大並行擷取數。

預設為 8。

max-connections=[1..100]

max-filesize-kb

指定由自動器擷取的檔案的最大檔案大小 (千位元組)。

max-filesize-kb=1024

max-memory-per-url / max-memory

指定由每個 URL 使用的最大記憶體 (位元組)。若 URL 需要更多記憶體,RD 會儲存至磁碟。

預設為 1。

這個參數無法透過管理主控台互動式設定。

max-memory-per-url=n_bytes

max-working

指定自動器工作設定的大小,也是自動器一次可執行的最大 URL 數。

這個參數無法透過管理主控台互動式設定。

max-working=1024

onCompletion

確定自動器在完成執行之後的工作事項。自動器可以成為閒置模式、回送、重新開始或退出。

預設為 idle

這個參數可與 cmd-hook 參數一起使用。當自動器完成時,將執行 onCompletion 動作然後執行 cmd-hook 程式。

OnCompletion=[idle | loop | quit]

password

指定用於 httpd 認證與 ftp 連線的 password

password=string

referer

存取網頁時,若其設定為識別自動器為 referrer,則指定在 HTTP 請求中傳送的參數。

referer=string

register-user

指定用於註冊 RD 至搜尋引擎資料庫的使用者名稱。

這個參數無法透過搜尋引擎管理介面互動式設定。

register-user=string

register-password

指定用於註冊 RD 至搜尋引擎資料庫的密碼。

這個參數無法透過管理主控台互動式設定。

register-password=string

remote-access

這個參數會決定自動器是否可以接受來自遠端主機的指令。

預設為 false

remote-access=[true | false | yes | no]

robot-state-dir

指定自動器儲存其狀態的目錄。在這個工作目錄中,自動器可以記錄已收集的 RD 數等等。

robot-state-dir="/var/opt/SUNWps/instance/portal/robot"

server-delay

指定兩次造訪相同網站之間的時間週期,可以避免自動器存取相同站台的頻率過高。

server-delay=delay_in_seconds

site-max-connections

指定自動器可以連至任何站台的最大並行連線數。

預設為 2。

site-max-connections=[1..100]

smart-host-heuristics

使得自動器可以變更正在輪換其 DNS 正規主機名稱的站台。例如,www123.siroe.com 會變更為 www.siroe.com

預設為 false

smart-host-heuristics=[true | false]

tmpdir

指定自動器建立暫時檔的位置。

使用這個值設定環境變數 TMPDIR

tmpdir=path

user-agent

指定使用 http-request 中的電子郵件位址傳送至伺服器的參數。

user-agent=iPlanetRobot/4.0

username

指定執行自動器的使用者與用於 http 認證與 ftp 連線的使用者名稱。

預設為 anonymous

username=string


robot.conf 檔案範例

本節將介紹一個 robot.conf 檔案範例。範例中有註釋的參數會使用顯示的預設值。第一個參數,csid 表示使用這個檔案的搜尋引擎實例,很重要的一點是不能變更這個參數值。有關這個檔案中的參數定義,請參閱使用者可修改的參數


備註

這個範例檔案包括由搜尋引擎使用但不應修改的一些參數,例如,csid 參數。


<Process csid="x-catalog://budgie.siroe.com:80/jack" \

auto-proxy="http://sesta.varrius.com:80/"

auto_serv="http://sesta.varrius.com:80/"

command-port=21445

convert-timeout=600

depth="-1"

# email="user@domain"

enable-ip=true

enumeration-filter="enumeration-default"

generation-filter="generation-default"

index-after-ngenerated=30

loglevel=2

max-concurrent=8

   site-max-concurrent=2

onCompletion=idle

password=boots

proxy-loc=server

proxy-type=auto

   robot-state-dir="/var/opt/SUNWps/https-budgie.siroe.com/ \

   ps/robot"

   server-delay=1

smart-host-heuristics=true

tmpdir="/var/opt/SUNWps/https-budgie.siroe.com/ps/tmp"

user-agent="iPlanetRobot/4.0"

   username=jack

</Process>



上一頁      目錄      索引      下一頁     


Copyright 2004 Sun Microsystems, Inc. 版權所有。