Sun Java System Portal Server 7.1 管理指南

资源过滤流程

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》