Sun Java System Portal Server 7.1 管理指南

第 12 章 管理搜索服务器 Robot

本章说明 Sun JavaTM System Portal Server 搜索服务器 robot 及其相应的配置文件。本章包含以下主题:

了解搜索服务器 Robot

搜索服务器 robot 是一个识别和报告其域中资源的代理。它使用以下两种过滤器来完成这项工作:枚举过滤器和生成过滤器。

枚举过滤器使用网络协议来定位资源。该过滤器会对每个资源进行测试,如果资源符合适当的条件,则枚举资源。例如,枚举过滤器可以从 HTML 文件中提取超文本链接,然后使用这些链接来查找附加的资源。

生成过滤器会对每个资源进行测试,确定是否应为其创建资源描述 (Resource Description, RD)。如果资源通过了测试,生成器便会为其创建 RD,该 RD 存储在搜索服务器数据库中。

以下章节说明管理 robot 所需的配置和维护任务:

Robot 的工作机理

图 12–1 展示 robot 如何检查 URL 及其相关的网络资源。枚举器和生成器对每个资源进行测试。如果资源通过了枚举器测试,则 robot 检查它以获取附加 URL。如果资源通过了生成器测试,robot 会为其生成资源描述,该资源描述存储在搜索服务器数据库中。

图 12–1 Robot 的工作机理

本图说明 robot 的工作机理。

Robot 配置文件

Robot 配置文件定义 robot 的行为。这些文件位于 /var/opt/SUNWportal/searchservers/searchserverid/config 目录。以下列表提供了每个 robot 配置文件的说明。

classification.conf

包含用于对 robot 生成的 RD 进行分类的规则。

filter.conf

定义 robot 使用的枚举和生成过滤器。

filterrules.conf

包含 robot 的站点定义、起点 URL、基于 mime 类型的过滤规则以及 URL 模式。

robot.conf

定义 robot 的大部分操作属性。

由于可以使用“搜索服务器管理”界面来设置大部分属性,因此通常不需要对 robot.conf 文件进行编辑。不过,高级用户可能需要手动编辑此文件,以设置那些无法通过界面来设置的属性。

定义站点

Robot 查找资源并决定是否将这些资源的描述添加到数据库中。决定要访问哪些服务器以及要为这些服务器的哪些部分创建索引的过程称为站点定义

为 robot 定义站点是服务器管理员最重要的工作之一。您需要确保将 robot 发送到所有其需要索引的服务器,但您也需要排除无关的站点,因为这些站点会填充数据库并使查找正确信息变得更加困难。

控制 Robot 搜寻

robot 提取并跟随指向各选定站点的链接以创建索引。作为系统管理员,您可以通过若干设置控制这些过程,包括:

有关 robot 搜寻属性的说明,参见《Sun Java System Portal Server 7.1 Technical Reference》

过滤 Robot 数据

过滤器能够识别资源,因此可以通过将资源的属性与过滤器定义进行比较来排除或包括该资源。robot 提供若干预定义的过滤器,其中一些默认为启用。以下过滤器是预定义的。标有星号的过滤器默认为启用。

您可以创建新的过滤器定义、修改过滤器定义或者启用或禁用过滤器。有关详细信息,参见资源过滤流程

使用 Robot 实用程序

Robot 包含两个调试工具或实用程序:

制定 Robot 进度表

为了保持搜索数据的及时性,robot 应定期搜索站点并创建站点索引。因为 robot 搜寻和创建索引可能消耗处理资源和网络带宽,应将 robot 安排在非使用高峰期运行。管理控制台允许管理员设置运行 robot 的进度表。

管理 Robot

本节说明管理 robot 的以下任务:

Procedure启动 Robot

  1. 登录到 Portal Server 管理控制台

  2. 从下拉菜单选择“搜索服务器”。从服务器列表选择一个搜索服务器。

  3. 从菜单栏单击 "Robot",然后从菜单栏单击“状态和控制”。

  4. 单击“启动”。

等同的 psadmin 命令

psadmin start-robot


注 –

对于命令 psadmin start-robot,如果没有可供 robot 搜寻的已定义站点,则搜索 robot 不会启动。命令 psadmin start-robot 通过显示“启动点:已定义 0”来表示没有可用的站点。


Procedure清除 Robot 数据库

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏选择 "Robot",然后选择“状态和控制”。

  4. 单击“清除 Robot 数据库”。

Procedure创建站点定义

Robot 查找资源并决定是否将这些资源的描述添加到数据库中。决定要访问哪些服务器以及要为这些服务器的哪些部分创建索引的过程称为站点定义

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏选择 "Robot",然后选择“站点”。

  4. 在“管理站点”下单击“新建”,然后指定该站点的配置属性。

    有关这些属性的更多信息,参见《Sun Java System Portal Server 7.1 Technical Reference》中的 "Sites"。

  5. 单击“确定”。

Procedure编辑站点定义

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏单击 "Robot",然后单击“站点”。

  4. 单击您想要修改的站点的名称。

    出现“编辑站点”对话框。

  5. 根据需要修改配置属性。

    有关这些属性的更多信息,参见《Sun Java System Portal Server 7.1 Technical Reference》中的 "Sites"。

  6. 单击“确定”记录更改。

Procedure控制 Robot 搜寻和创建索引

Robot 将会搜寻各个选定的站点以创建索引。可通过定义搜寻和创建索引的操作属性来控制 robot 搜寻站点的方式。

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏单击 "Robot",然后单击“属性”。

  4. 根据需要指定 robot 搜寻和创建索引属性。

    有关这些属性的更多信息,参见《Sun Java System Portal Server 7.1 Technical Reference》中的“Site Probe”

  5. 单击“保存”。

Procedure运行模拟器

模拟器将部分模拟对所列出的一个或多个站点执行的 robot 过滤。

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏单击 "Robot",然后单击“实用程序”。

  4. 在“添加新的 url”文本框中键入要模拟的新站点的 URL,然后单击“添加”。

    您还可以在“现有 Robot 站点”下列出的现有站点上运行模拟器。

  5. 单击“运行模拟器”。

Procedure运行站点探测器实用程序

站点探测器实用程序将检查 DNS 别名、服务器重定向以及虚拟服务器之类的信息。

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏单击 "Robot",然后单击“实用程序”。

  4. 键入要探测的站点的 URL。

  5. (可选的)如果您想要探测器返回 DNS 信息,请在“站点探测器”下选择“显示高级 DNS 信息”。

  6. 单击“运行站点探测器”。

资源过滤流程

robot 使用过滤器来确定处理哪些资源以及如何处理它们。当 robot 搜索资源的引用以及资源本身时,它对每个资源都应用过滤器。过滤器枚举资源并确定是否生成资源描述,以存储在搜索服务器数据库中。

robot 检查一个或多个起点 URL,应用过滤器,然后将过滤器应用到通过枚举这些 URL 产生的 URL 等。起点 URL 在 filterrules.conf 文件中定义。

每个枚举和生成过滤器均执行所有必需的初始化操作,并对当前资源应用比较测试。每项测试的目标都是允许或拒绝该资源。每个过滤器还有停止运行阶段,它在该阶段会执行清除操作。

如果一个资源获得允许,那么它会通过过滤器继续其历程。robot 最后会枚举该资源,尝试搜索更多的资源。生成器还可能会为其创建资源描述。

如果某资源被拒绝,则该资源便会被弃用。过滤器不会对被拒绝的资源执行进一步操作。

这些操作没有必然的连锁关系。一些资源导致枚举;另一些资源导致生成 RD。许多资源会导致枚举并生成 RD。例如,如果资源是一个 FTP 目录,则通常不会为该资源生成 RD。不过,robot 可能会枚举 FTP 目录中的文件。一个包含指向其他文档链接的 HTML 文档可导致生成一个 RD,并且还会导致所有链接文档的枚举。

以下各节说明了过滤流程:

过滤流程的各个阶段

枚举和生成过滤器的过滤流程都有五个阶段。

表 12–1 常见元数据类型

元数据类型 

描述 

示例 

完整的 URL 

资源的位置 

http://home.siroe.com/

协议 

URL 的访问部分 

httpftpfile

主机 

URL 的地址部分 

www.siroe.com

IP 地址 

主机的数字版本 

198.95.249.6 

路径 

URL 的路径部分 

/index.html

深度 

从起点 URL 开始的链接数 

过滤器语法

filter.conf 文件包含枚举和生成过滤器的定义。该文件包含多个枚举和生成所共用的过滤器。robot 所使用的过滤器是由 robot.conf 文件中的 enumeration-filtergeneration-filter 属性指定。

过滤器定义具有一个定义明确的结构:该结构由标题、正文和结尾组成。标题用于确定过滤器的开始处和声明过滤器的名称,例如:


<Filter name="myFilter">

正文由一系列过滤器指令组成,这些指令定义过滤器在设置、测试、枚举或生成以及停止运行期间的行为。每条指令都指定了一种功能,在适用情况下,还指定了功能的属性。

结尾使用 </Filter> 来标记。

示例 12–1 显示了一个名为 enumeration1 的过滤器。


示例 12–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>

过滤器指令

过滤器指令使用 robot 应用函数 (robot application function, RAF) 来执行操作。它们的使用方法和操作流程类似于 Sun Java System Web Server 的 obj.conf 文件中的 NSAPI 指令和服务器应用程序函数 (Server Application Function, SAF)。与 NSAPI 和 SAF 一样,数据的存储和传送使用属性块(亦称作 pblock)。

六条 robot 指令(或 RAF 类)对应于资源过滤流程中列出的过滤阶段和操作:

每条指令有其自身的 robot 应用函数。例如,配合“元数据”和“数据”指令使用的过滤函数、配合“枚举”指令使用的枚举函数、配合“生成”指令使用的生成函数等。

内置 robot 应用函数以及编写自定义 robot 应用函数的说明在《Sun Java System Portal Server 7.1 Developer's Guide》中有介绍。

编写或修改过滤器

大多数情况下,您可以使用管理控制台来创建大多数基于站点定义的过滤器。然后可根据需要进一步修改 filter.conffilterrules.conf 文件。这些文件位于 /var/opt/SUNWportal/searchservers/searchserverid/config 目录。

要创建一组更复杂的属性,可编辑 robot 使用的配置文件。

当您编写或修改过滤器时,请注意以下顺序

您还可以执行以下操作:

有关更多信息,参见《Sun Java System Portal Server 7.1 Developer's Guide》

管理过滤器

本节说明以下管理 robot 过滤器的任务:

Procedure创建过滤器

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏选择“Robot”,然后选择“过滤器”。

  4. 单击“新建”。

    出现“新建 Robot 过滤器向导”。

  5. 按照说明创建指定的过滤器。

    1. 在文本框中键入过滤器名称和过滤器描述,然后单击“下一步”。

    2. 指定过滤器定义和行为,然后单击“完成”。

      有关过滤器属性的更多信息,参见《Sun Java System Portal Server 7.1 Technical Reference》中的 "Filters"。

    3. 单击“关闭”以加载新的过滤器。

Procedure删除过滤器

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏选择“Robot”,然后选择“过滤器”。

  4. 选择一个过滤器。

  5. 单击“删除”。

  6. 单击显示的确认对话框中的“确定”。

Procedure编辑过滤器

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏选择“Robot”,然后选择“过滤器”。

  4. 选择一个过滤器,然后单击“编辑”。

    将显示“编辑过滤器”页面。

  5. 根据需要修改配置属性。

    有关过滤器属性的更多信息,参见《Sun Java System Portal Server 7.1 Technical Reference》中的 "Filters"。

  6. 单击“确定”。

Procedure启用或禁用过滤器

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏选择“Robot”,然后选择“过滤器”。

  4. 选择一个过滤器。

    • 要启用过滤器,可单击“启用”。

    • 要禁用过滤器,可单击“禁用”。

管理分类规则

可以将文档分配给多个类别,最多可达到设置中定义的最大值。分类规则比 robot 过滤器规则简单,因为它们不涉及任何流程控制决策。在这些分类规则中,您必须决定使用什么样的标准将特定的类别分配给资源,作为其“资源描述”的一部分。分类规则是一个简单的条件语句,采用 if condition is true, assign the resource to <a category> 的格式。

Procedure创建分类规则

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏选择“Robot”,然后选择“分类规则”。

  4. 选择“分类规则”然后单击“新建”。

    将显示“新建分类规则”对话框。

  5. 根据需要指定配置属性。

    有关这些属性的更多信息,参见《Sun Java System Portal Server 7.1 Technical Reference》中的 "Manage Classification Rules"。

  6. 单击“确定”。

Procedure编辑分类规则

  1. 登录到 Portal Server 管理控制台

  2. 从菜单栏中选择“搜索服务器”,然后从中选择一个搜索服务器。

  3. 从菜单栏中选择 "Robot",然后选择“分类规则”。

  4. 选择一个分类规则,然后单击“编辑”。

  5. 根据需要修改属性。

    有关这些属性的更多信息,参见《Sun Java System Portal Server 7.1 Technical Reference》中的 "Manage Classification Rules"。

  6. 单击“确定”。

源和目标

大多数 robot 应用函数 (Robot Application Function, RAF) 需要信息源,并会生成传至目标的数据。源在 robot 内进行定义,并且不必与 robot 最终生成的资源描述中的字段相关。另一方面,目标通常是指资源描述中的字段名(如资源描述服务器的模式所定义)。

以下各节介绍了过滤流程的不同阶段,以及这些阶段的可用源:

安装阶段的可用源

在“安装”阶段,过滤器在进行安装但无法获得关于资源的 URL 或内容的信息。

元数据过滤阶段的可用源

在“元数据”阶段,robot 会遇到资源的 URL,但它还没有下载资源的内容。这样,关于 URL 以及源自其他源(例如 filter.conf 文件)的数据的信息均可用。不过,在此阶段,关于资源内容的信息不可用。

表 12–2 元数据阶段 RAF 的可用源

资源 

描述 

示例 

csid 

目录服务器 ID 

x-catalog//budgie.siroe.com:8086/alexandria

depth 

从起始点开始遍历的链接数 

10

enumeration filter 

枚举过滤器的名称 

enumeration1

generation filter 

生成过滤器的名称 

generation1

host 

URL 的主机部分 

home.siroe.com

IP 

主机的数字形式 

198.95.249.6

协议 

URL 的访问部分 

http, https, ftp, file

path 

URL 的路径部分 

/, /index.html, /documents/listing.html

URL 

完整的 URL 

http://developer.siroe.com/docs/manuals/

数据阶段的可用源

在“数据”阶段,robot 已经下载 URL 处资源的内容,并且可以访问关于该内容的数据,例如描述和作者。

如果资源为 HTML 文件,Robot 会分析 HTML 标头中的 <META> 标记。因此,在“数据”阶段可获得 <META> 标记内包含的任意数据。

在“数据”阶段,除了“元数据”阶段的可用源之外,以下源对 RAF 可用。

表 12–3 数据阶段 RAF 的可用源

资源 

描述 

示例 

content-charset

资源所使用的字符集 

 

content-encoding

任意的编码形式 

 

content-length

资源的长度(字节) 

 

content-type

资源的 MIME 类型 

text/html, image/jpeg

expires

资源到期的日期 

 

last-modified

上次修改资源的日期 

 

<META> 标记中的数据

HTML 资源标头中的 <META> 标记内提供的任何数据

作者、描述、关键字 

检索资源时,会返回所有源自 HTTP 响应报头的源(<META> 标记中的数据除外)。

枚举阶段、生成阶段及停止运行阶段的可用源

在“枚举”阶段和“生成”阶段,可用数据源与“数据”阶段的可用数据源相同。有关信息参见表 12–3

在“停止运行”阶段,过滤器完成过滤过程并停止运行。虽然为此阶段编写的函数可使用与“数据”阶段相同的可用数据源,但是停止运行的函数通常会将其操作限制为停止运行 robot 和清除活动。

启用属性

每个函数都可以有一个 enable 属性。值可以是 truefalseonoff。管理控制台使用这些参数启用或禁用某些指令。

以下示例为 text/html 启用枚举,对 text/plain 禁用枚举:


#  仅在 HTML 上执行枚举
Enumerate enable=true fn=enumerate-urls max=1024 type=text/html
Enumerate enable=false fn=enumerate-urls-from-text max=1024 type=text/plain

添加 enable=false 属性或 enable=off 属性与注释掉该行具有相同的效果。使用这些属性是由于管理控制台不编写注释。

安装函数

本部分介绍安装阶段由枚举过滤器和生成过滤器使用的函数。以下各节说明函数:

filterrules-setup

当您使用 filterrules-setup 函数时,使用 logtype 日志文件。值可以是 verbosenormalterse

属性

config

包含此过滤器使用的过滤器规则的文件的路径名。

示例

Setup fn=filterrules-setup

config="/var/opt/SUNWportal/searchservers/search1/config/filterrules.conf"

setup-regex-cache

setup-regex-cache 函数初始化 filter-by-regexgenerate-by-regex 函数的高速缓存大小。使用此函数可指定默认值 32 之外的其他数字。

属性

cache-size

regex 高速缓存中保存已编译的正则表达式的最大数目。

示例

Setup fn=setup-regex-cache cache-size=28

setup-type-by-extension

setup-type-by-extension 函数配置过滤器,以识别文件扩展名。必须调用它之后才能使用 assign-type-by-extension 函数。指定为属性的文件必须包含标准 MIME 内容类型和文件扩展名字符串之间的映射。

属性

file

MIME 类型配置文件的名称

示例

Setup fn=setup-type-by-extension

file="/var/opt/SUNWportal/searchservers/search1/config/mime.types"

过滤函数

过滤函数在“元数据”和“数据”阶段运行,以根据函数及其属性指定的具体条件来允许或拒绝资源。在 filter.conf 文件的“枚举”和“生成”过滤器中均可使用这些函数。

每个 filter-by 函数执行一次比较,然后允许或拒绝资源。允许资源表示继续进行下一过滤步骤。拒绝资源则表示应停止处理过程,因为资源不符合进行进一步枚举或生成的条件。

filter-by-exact

如果 allow/deny 字符串与信息源完全匹配,则 filter-by-exact 函数将允许或拒绝资源。关键字 all 表示与任意字符串匹配。

属性

src

信息源

allow/deny

包含字符串

示例

以下示例将过滤出 content-type 为 text/plain 的所有资源。它允许其他所有资源继续进行以后的处理:

Data fn=filter-by-exact src=type deny=text/plain

filter-by-max

如果指定信息源的值小于或等于给定值,则 filter-by-max 函数将允许该资源。如果信息源的值大于指定值,则会拒绝该资源。

每个过滤器只能调用一次此函数。

属性

filter-by-max 函数列出与 filter-by-max 函数一起使用的属性。

src

信息源:主机、对象或深度

value

指定用于比较的值

示例

本示例允许 content-length 小于 1024 KB 的资源:

MetaData fn-filter-by-max src=content-length value=1024

filter-by-md5

filter-by-md5 函数只允许第一个含有给定的 MD5 校验和值的资源。如果此 robot 在较早的资源中看到当前资源的 MD5,则拒绝当前资源。该功能可防止相同资源或有多个 URL 的单个资源发生重复。

只能在“数据”阶段或之后调用此函数。每个过滤器只能调用一次此函数。过滤器必须调用 generate-md5 函数来生成 MD5 校验和,然后才能调用 filter-by-md5

属性

示例

以下示例显示处理 MD5 校验和的典型方法,即首先生成校验和,然后根据它进行过滤:

Data fn=generate-md5

Data fn=filter-by-md5

filter-by-prefix

如果提供的信息源以指定的字符串前缀开始,则 filter-by-prefix 函数将允许或拒绝资源。资源无须完全匹配。关键字 all 表示与任意字符串匹配。

属性

src

信息源

allow/deny

包含用于进行前缀比较的字符串

示例

以下示例允许 content-type 为任何文本类型(包括 text/htmltext/plain)的资源:

MetaData fn=filter-by-prefix src=type allow=text

filter-by-regex

filter-by-regex 函数支持正则表达式模式匹配。它允许与给定正则表达式匹配的资源。支持的正则表达式语法由 POSIX.1 规范定义。正则表达式 \\\\* 表示匹配任意项目。

属性

src

信息源

allow/deny

包含正则表达式字符串

示例

以下示例拒绝来自 .gov 域站点的所有资源:

MetaData fn=filter-by-regex src=host deny=\\\\*.gov

filterrules-process

filterrules-process 函数处理 filterrules.conf 文件中的站点定义和过滤器规则。

属性

示例

MetaData fn=filterrules-process

过滤支持函数

过滤期间使用支持函数处理或生成有关资源的信息。然后 robot 可以通过调用过滤函数处理资源。可在 filter.conf 文件中的枚举和生成过滤器中使用这些函数。

assign-source

assign-source 函数会将新值赋予给定的信息源。此函数允许在过滤处理期间进行编辑。此函数可指定一个显式新值,也可从另一信息源复制一个值。

属性

dst

需要更改值的源的名称

value

指定一个显式值

src

要复制到 dst 的信息源

您必须指定 value 属性或 src 属性,但不能同时指定两者。

示例

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

assign-type-by-extension

assign-type-by-extension 函数用资源的文件名确定其类型,并将此类型分配给资源以便进一步处理。

在安装过程中必须调用 setup-type-by-extension 函数,之后方可使用 assign-type-by-extension

属性

src

要比较的文件名的源。如果未指定源,则默认值为资源的路径

示例

MetaData fn=assign-type-by-extension

clear-source

clear-source 函数删除指定的数据源。通常不需要执行此函数。您可以使用 assign-source 函数来创建或替代源。

属性

src

要删除的源的名称

示例

以下示例删除路径源:

MetaData fn=clear-source src=path

convert-to-html

如果当前资源的类型匹配指定的 MIME 类型,convert-to-html 函数会将当前资源转换为 HTML 文件以进一步处理。转换过滤器会自动检测要转换的文件的类型。

属性

type

要转换的 MIME 类型

示例

调用以下函数序列会导致过滤器将所有 Adobe Acrobat PDF 文件、Microsoft RTF 文件和 FrameMaker MIF 文件以及提供文件的服务器未指定其类型的任何文件转换为 HTML。

Data fn=convert-to-html type=application/pdf

Data fn=convert-to-html type=application/rtf

Data fn=convert-to-html type=application/x-mif

Data fn=convert-to-html type=unknown

copy-attribute

copy-attribute 函数可将资源描述中的某个字段的值复制到另一个字段中。

属性

src

资源描述中要复制的字段

dst

资源描述中的项目,源将被复制到该项目中

truncate

要复制的源的最大长度

clean

指示是否修复被截断的文本,以防文字不完整的布尔属性。默认情况下此属性为 false

示例

Generate fn=copy-attribute \\

src=partial-text dst=description truncate=200 clean=true

generate-by-exact

仅当现有源与另一个值完全匹配时,generate-by-exact 函数才会利用指定的值生成源。

属性

dst

要生成的源的名称

value

要赋予 dst 的值

src

匹配的源

示例

如果主机为 www.siroe.com,以下示例会将分类设置为 siroe

Generate fn="generate-by-exact" match="www.siroe.com:80" src="host" value="Siroe" dst="classification"

generate-by-prefix

如果现有源的前缀与另一个值匹配,则此 generate-by-prefix 函数会利用指定的值生成源。

属性

dst

要生成的源的名称

value

要赋予 dst 的值

src

匹配的源

match

要与 src 进行比较的值

示例

以下示例当协议前缀为 HTTP 时将分类设为 Compass:

Generate fn="generate-by-prefix" match="http" src="protocol" value="World Wide Web" dst="classification"

generate-by-regex

如果现有源与某个正则表达式匹配,则 generate-by-regex 函数会利用指定的值生成源。

属性

dst

要生成的源的名称

value

要赋予 dst 的值

src

匹配的源

match

要与 src 进行比较的正则表达式字符串

示例

如果主机名与正则表达式 *.siroe.com 匹配,以下示例会将分类设置为 siroe。例如,developer.siroe.comhome.siroe.com 的资源都被分类为 Siroe

Generate fn="generate-by-regex" match="\\\\*.siroe.com" src="host" value="Siroe" dst="classification"

generate-md5

generate-md5 函数会生成 MD5 校验和并添加到资源中。然后,可使用 filter-by-md5 函数拒绝有相同 MD5 校验和的资源。

属性

示例

Data fn=generate-md5

generate-rd-expires

generate-rd-expires 函数会生成到期日期并添加到指定的源。此函数使用元数据(例如 HTTP 标头和 HTML <META> 标记)从资源获取任意到期数据。如果不存在,函数将生成一个距当前日期三个月的到期日期。

属性

dst

源的名称。如果您忽略它,则源默认值为 rd-expires

示例

Generate fn=generate-rd-expires

generate-rd-last-modified

generate-rd-last-modified 函数可将当前时间添加到指定的源。

属性

dst

源的名称。如果您忽略它,则源默认值为 rd-last-modified

示例

Generate fn=generate-last-modified

rename-attribute

rename-attribute 函数可更改资源描述中字段的名称。此函数在以下情况非常有用,例如,extract-html-meta 函数从一个 <META> 标记复制信息到一个字段而您想要更改该字段的名称。

属性

src

包含从一个名称到另一个名称的映射的字符串

示例

以下示例将属性从 author 重命名为 author-name:

Generate fn=rename-attribute src="author->author-name"

枚举函数

以下函数在“枚举”阶段运行。这些函数控制 robot 是否以及如何从指定资源收集链接以作为进一步的资源搜索的起点。

enumerate-urls

enumerate-urls 函数扫描资源,并枚举在超文本链接中找到的全部 URL。利用这些结果可产生更多的资源搜索结果。您可以指定 content-type 来限制枚举的 URL 的种类。

属性

max

从指定资源产生的 URL 的最大数目。默认值为 1024。

type

Content-type,限制枚举那些有特定 Content-type 的 URL。type 是一个可选属性。如果忽略,则函数枚举所有 URL。

示例

以下示例仅枚举 HTML URL,最多可达 1024 个:

Enumerate fn=enumerate-urls type=text/html

enumerate-urls-from-text

enumerate-urls-from-text 函数扫描文本资源,寻找匹配正则表达式 URL:.* 的字符串。该函数产生 robot 以枚举这些字符串中的 URL 并生成进一步的资源描述。

属性

max

从指定资源产生的 URL 的最大数目。如果忽略 max,默认值为 1024

示例

Enumerate fn=enumerate-urls-from-text

生成函数

“生成”函数用于过滤的“生成”阶段。生成函数可以创建加入到资源描述中的信息。通常,它们会从资源本身的正文中提取信息,或者从资源的元数据中复制信息。

extract-full-text

extract-full-text 函数可提取资源的全部文本,并将其添加到资源描述中。


注 –

应谨慎使用 extract-full-text 函数。它可以显著增加资源描述的大小,从而导致数据库膨胀,并对网络带宽带来整体的负面影响。


示例

Generate fn=extract-full-text

属性

truncate

要从资源中提取的最大字符数

dst

接收全部文本的模式项目的名称

extract-html-meta

extract-html-meta 函数可从 HTML 文件提取任意 <META><TITLE> 信息,并将其添加到资源描述中。可指定 content-type 以限制生成的 URL 种类。

属性

truncate

要提取的最大字节数

type

可选属性。如果忽略,则生成所有 URL

示例

Generate fn=extract-html-meta truncate=255 type=text/html

extract-html-text

extract-html-text 函数可从 HTML 文件提取文本开头的少量字符(不包括 HTML 标记),并将文本添加到资源描述中。此函数允许在 RD 中包含文档开头部分的文字。可指定 content-type 以限制生成的 URL 类型。

属性

truncate

要提取的最大字节数

skip-headings

设置为 true 可忽略文档中的全部 HTML 标头

type

可选属性。如果忽略,则生成所有 URL

示例

Generate fn=extract-html-text truncate=255 type=text/html skip-headings=true

extract-html-toc

extract-html-toc 函数可从 HTML 标头提取目录,并将其添加到资源描述中。

属性

truncate

要提取的最大字节数

level

要提取的最大 HTML 标头级别。此属性可控制目录的深度

示例

Generate fn=extract-html-toc truncate=255 level=3

extract-source

extract-source 函数可从给定源中提取指定值,并将它们添加到资源描述中。

属性

src

列出源名称。您可以使用 -> 运算符定义 RD 属性的新名称。例如,type->content-type 会采用名为 type 的源的值,将其保存在 RD 中名为 content-type 的属性下。

示例

Generate fn=extract-source src="md5,depth,rd-expires,rd-last-modified"

harvest-summarizer

harvest-summarizer 函数可在资源上运行 Harvest 摘要器,并将结果添加到资源描述中。

要运行 Harvest 摘要器,在运行 robot 之前,path 中必须有 $HARVEST_HOME/lib/gatherer

属性

summarizer

摘要器程序的名称

示例

Generate fn-harvest-summarizer summarizer=HTML.sum

停止运行函数

枚举函数和生成函数均可在停止运行阶段使用 filterrules-shutdown 函数。

filterrules-shutdown

规则运行后,filterrules-shutdown 函数可执行清除和停止运行功能。

属性

示例

Shutdown fn=filterrules-shutdown

可修改的属性

robot.conf 文件为 robot 定义了许多选项,其中包括将 robot 指向 filter.conf 中的适当过滤器的选项。为向后兼容较早的版本,robot.conf 也可以包含起点 URL。

由于可以使用管理控制台来设置大部分属性,因此通常不需要对 robot.conf 文件进行编辑。不过,高级用户可能需要手动编辑此文件,以设置那些无法通过管理控制台来设置的属性。参见robot.conf 文件范例以获得此文件的示例。

表 12–4 列出了 robot.conf 文件中您可以更改的属性。

表 12–4 用户可修改的属性

属性 

描述 

示例 

auto-proxy

指定 robot 的代理设置。它可以是代理服务器或是用于自动配置代理的 JavaScript 文件。  

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

bindir

指定 robot 是否将 bin 目录添加到 PATH 环境中。这是一个附加 PATH,供用户在 robot 中运行外部程序,如 cmd-hook 属性所指定的程序。

bindir=path

cmd-hook

指定一个外部完成脚本,在 robot 完成一次运行后运行。其值必须是命令名的完整路径。robot 从 /var/opt/SUNWportal/ 目录执行此脚本。

没有默认设置。 

至少要注册一个 RD 才能运行该命令。 

 

cmd-hook=”command-string”

command-port

指定 robot 用来侦听以接受来自其他程序(如管理界面或 robot 控制面板)的命令的端口号。 

出于安全原因,如果不将 remote-access 设置为 yes,robot 便只接受来自本地主机的命令。

command-port=port_number

connect-timeout

指定网络对连接请求的最长响应时间。 

默认值为 120 秒。

command-timeout=seconds

convert-timeout

指定最长文档转换时间。 

默认值为 600 秒。

convert-timeout=seconds

depth

指定 robot 从起点 URL 开始检查的链接数。此属性会为所有未指定深度的起点 URL 设置默认值。 

默认值为 10

负 1 (depth=-1) 表示链接深度为无限。

depth=integer

email

指定运行 robot 的人员的电子邮件地址。 

电子邮件地址会连同 HTTP 请求标头中的 user-agent 一起发送,以便 Web 管理员可以联系在其站点运行 robot 的人员。 

默认值为 user@domain

email=user@hostname

enable-ip

为每个所创建 RD 的 URL 生成一个 IP 地址。 

默认值为 true

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

enable-rdm-probe

确定服务器是否支持 RDM。robot 根据此属性确定是否查询它遇到的每个服务器。如果服务器支持 RDM,则 robot 不会尝试枚举服务器资源,服务器可以充当自己的资源描述服务器。 

默认值为 false

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

enable-robots-txt

确定 robot 是否应在它所访问的每个站点检查 robots.txt 文件(如果存在该文件)。

默认值为 yes

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

engine-concurrent

指定供 robot 使用的预先创建的线程数。 

默认值为 10

您不能使用管理控制台以交互方式设置此属性。 

engine-concurrent=[1..100]

enumeration-filter

指定 robot 用来确定是否应枚举资源的枚举过滤器。该值必须是 filter.conf 文件中所定义的过滤器的名称。

默认值为 enumeration-default

您不能使用管理控制台以交互方式设置此属性。 

enumeration-filter=enumfiltername

generation-filter

指定 robot 用来确定是否应为资源生成资源描述的生成过滤器。该值必须是 filter.conf 文件中所定义的过滤器的名称。

默认值为 generation-default

您不能使用管理控制台以交互方式设置此属性。 

generation-filter=genfiltername

index-after-ngenerated

指定在为搜索服务器批处理 RD 前,robot 收集 RD 所应花费的分钟数。 

默认值为 30 分钟。 


index-after-ngenerated=30

loglevel

指定日志级别。loglevel 值如下:

  • 级别 0:只记录严重错误

  • 级别 1:还记录 RD 生成(默认值)

  • 级别 2:还记录检索活动

  • 级别 3:还记录过滤活动

  • 级别 4:还记录产生活动

  • 级别 5:还记录检索进度

    默认值为 1


loglevel=[0...100]

max-connections

指定 robot 可以进行的并发检索的最大数目。 

默认值为 8


max-connections=[1..100]

max-filesize-kb

指定 robot 检索的最大文件大小(以千字节为单位)。 


max-filesize-kb=1024

max-memory-per-url / max-memory

指定每个 URL 使用的最大内存(以字节为单位)。如果 URL 需要更多内存,则 RD 将保存到磁盘上。 

默认值为 64k

您不能使用管理控制台以交互方式设置此属性。 


max-memory-per-url=n_bytes

max-working

指定 robot 工作集的大小,即 robot 可以同时处理的 URL 的最大数目。 

您不能使用管理控制台以交互方式设置此属性。 


max-working=1024

onCompletion

确定 robot 完成一次运行后执行什么操作。robot 可以转为闲置模式、回送并再次启动或退出。 

默认值为 idle

此属性与 cmd-hook 属性一起使用。Robot 运行完成后,将执行 onCompletion 操作,然后运行 cmd-hook 程序。


OnCompletion=[idle | loop | quit]

password

指定 httpd 验证和 ftp 连接所用的 password


password=string

referer

如果被设为在访问 Web 页时将 robot 标识为引用,则指定 HTTP 请求中发送的属性 


referer=string

register-user

指定用于将 RD 注册到搜索服务器数据库的用户名。 

此属性不能通过搜索服务器管理界面以交互方式进行设置。 


register-user=string

register-password

指定用于将 RD 注册到搜索服务器数据库的密码。 

此属性无法通过管理控制台以交互方式进行设置。 


register-password=string

remote-access

此属性确定 robot 是否可从远程主机接受命令。 

默认值为 false


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

robot-state-dir

指定 robot 保存其状态的目录。在此工作目录中,robot 可以记录收集的 RD 数等。 


robot-state-dir="/var/opt/SUNWportal/
searchservers/<searchserverid>/config/robot"

server-delay

指定两次访问同一 Web 站点之间的时间段,以防止 robot 过于频繁地访问同一站点。默认值为 0 秒。 


server-delay=delay_in_seconds

site-max-connections

表示 robot 对任一站点的并发连接的最大数目。 

默认值为 2


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

smart-host-heuristics

使 robot 能更改轮转其 DNS 规范主机名的站点。例如,www123.siroe.com 更改为 www.siroe.com

默认值为 false


smart-host-heuristics=[true | false]

tmpdir

指定 robot 创建临时文件的位置。 

使用该值来设置环境变量 TMPDIR


tmpdir=path

user-agent

指定随 http-request 中的电子邮件地址一并发送给服务器的属性。


user-agent=SunONERobot/6.2

username

指定运行 robot 的用户名,该名称用于进行 httpd 验证和 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/SUNWportal/searchservers/search1/robot" \\
   ps/robot"
   server-delay=1
   smart-host-heuristics=true
   tmpdir="/var/opt/SUNWportal/searchservers/search1/tmp"
   user-agent="iPlanetRobot/4.0"
   username=jack
</Process>