Sun ONE logo      上一页      目录      索引      下一页     

Sun ONE Portal Server 6.2 管理员指南

第 10 章
预定义的 Robot 应用程序操作程序

本章介绍了“Sun™ ONE Portal Server Search Engine(搜索引擎)”中预定义的“Robot 应用程序操作程序”(RAF) 的说明、参数说明和示例。您可使用 filter.conf 文件中的这些操作程序创建并修改过滤器定义。文件 filter.conf 位于目录 /var/opt/SUNWps/http-hostname-domain/portal/config 下。

文件 filter.conf 中含有对枚举过滤器和生成过滤器的定义。其中的每个过滤器都会调用 filterrules.conf 文件中存储的一组规则。过滤器定义包含每个过滤器专用的指令,而过滤器规则包含这两种过滤器使用的规则。

要了解过滤器规则的定义方法,可查看 filterrules.conf 文件。注意,由于过滤器规则是使用管理控制台创建的,因此您通常无需手动编辑此文件。

要查看过滤器定义的示例,应查看 filter.conf 文件。您只需编辑 filter.conf 文件,以管理控制台中未提供的方式修改过滤器(如,指示 robot 枚举某些资源而不为它们生成资源)。

本章包含以下部分:


源和目标

大多数“Robot 应用程序操作程序”(RAF) 都需要信息源,并生成发往目标的数据。Robot 内部定义了源,且源无需与 robot 最终生成的资源描述中的字段相关。另一方面,正如资源描述服务器的模式所定义,目标通常是指资源描述中的字段名。

有关使用管理控制台确定数据库模式的详细信息,请参阅第 8 章,“管理搜索引擎服务”

以下部分介绍了过滤进程的不同阶段,以及这些阶段的可用源。

安装阶段的可用源

在“安装”阶段,虽然对过滤器进行了设置,但还不能获得有关资源的 URL 或资源内容方面的信息。

元数据过滤阶段的可用源

在“元数据”阶段,robot 遇到某个资源的 URL,但它并未下载资源的内容,从而可获得有关该 URL 以及源自其它源(如 filter.conf 文件)的数据的信息。但是,在此阶段不能获得有关资源内容的信息。

表 10-1 列出了“元数据”阶段 RAF 的可用源。该表由三列组成。第一列列出源,第二列给出说明,第三列提供一个示例。

表 10-1 元数据阶段 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

protocol

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 还可使用以下源。该表由三列组成。第一列列出源,第二列给出说明,第三列提供一个示例。

表 10-2 数据阶段 RAF 的可用源 

说明

示例

content-charset

资源所使用的字符集

 

content-encoding

任意的编码形式

 

content-length

资源的长度(字节)

 

content-type

资源的 MIME 类型

text/html, image/jpeg

expires

资源本身到期的日期

 

last-modified

上次修改资源的日期

 

data in <META> tags

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

作者
描述
关键字

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

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

在“枚举”阶段和“生成”阶段,可用数据源与“数据”阶段的可用数据源相同。

在“停止运行”阶段,过滤器完成过滤过程并停止运行。虽然为此阶段编写的操作程序可使用与“数据”阶段相同的可用数据源,但是停止运行阶段的操作程序通常会对上述操作程序的运行加以限制,以停止运行并清除操作。

Enable 参数

每个操作程序都可以有一个 enable 参数。参数值可以为 truefalseonoff。管理控制台使用这些参数启用或禁用某些指令。

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

# Perform the enumeration on HTML only

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 参数与为该行进行注释具有相同的效果。因为管理控制台不编写注释,而是编写一个 enable 参数。


安装操作程序

本部分介绍安装阶段由枚举过滤器和生成过滤器使用的操作程序。介绍下列操作程序:

filterrules-setup

使用 filterrules-setup 操作程序时,logtype 为要使用的日志文件的类型。值可以是 verbosenormalterse

参数

表 10-3 列出了与 filterrules-setup 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-3 filterrules-setup 参数

参数

说明

config

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

示例

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

setup-regex-cache

setup-regex-cache 操作程序可为 filter-by-regexgenerate-by-regex 操作程序初始化高速缓存的容量。使用此操作程序可指定默认值 32 之外的其它数字。

参数

表 10-4 列出了与 setup-regex-cache 操作程序一起使用的参数。该表由三列组成。第一列列出参数,第二列给出说明,第三列提供一个示例。

表 10-4 setup-regex-cache 参数

参数

说明

cache-size

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

示例

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

setup-type-by-extension

setup-type-by-extension 操作程序配置过滤器,以识别文件扩展名。使用 assign-type-by-extension 操作程序前,必须调用该操作程序。指定作为参数的文件必须包含标准 MIME 内容类型和文件扩展名字符串之间的映射。

参数

表 10-5 列出了与 setup-type-by-extension 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-5 setup-type-by-extension 参数

参数

说明

file

MIME 类型配置文件的名称。

示例

Setup fn=setup-type-by-extension file=./config/mime.types


过滤操作程序

下列操作程序在“元数据”和“数据”阶段运行,可以根据由相应操作程序及其参数指定的具体条件来允许或拒绝资源。

filter.conf 文件的“枚举”过滤器和“生成”过滤器中均可使用这些操作程序。

每个“filter-by”操作程序会先执行比较,然后确定允许还是拒绝资源。允许资源表示继续进行下一过滤步骤。拒绝资源则表示应停止处理过程,因为资源不符合进行进一步枚举或生成的条件。介绍下列操作程序:

filter-by-exact

如果允许/拒绝的字符串与源信息完全匹配,则 filter-by-exact 操作程序将允许/拒绝资源。关键字 all 表示与任意字符串匹配。

参数

表 10-6 列出了与 filter-by-exact 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-6 filter-by-exact 参数

参数

说明

src

信息源。

allow/deny

包含一个字符串。

示例

以下示例将过滤出内容类型为 text/plain 的所有资源。它允许其它所有资源继续进行以后的处理:

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

filter-by-max

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

每此过滤只能调用一次此操作程序。

参数

表 10-7 列出了与 filter-by-max 操作程序一起使用的各参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-7 filter-by-max 参数

参数

说明

src

信息源。必须是下列源之一:hosts、objects 或 depth。

value

指定一个用于比较的值。

示例

此示例允许内容长度小于 1024 K 的资源:

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 表示与任意字符串匹配。

参数

表 10-8 列出了与 filter-by-prefix 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-8 filter-by-prefix 参数

参数

说明

src

信息源。

allow/deny

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

示例

以下示例允许任意内容类型的文本(包括 text/htmltext/plain)的资源:

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

filter-by-regex

filter-by-regex 操作程序支持正则表达式模式匹配。它允许与给定正则表达式匹配的资源。支持的正则表达式语法由 POSIX.1 规范定义。正则表达式 \\* 可匹配任意资源。

参数

表 10-9 列出了与 filter-by-regex 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-9 filter-by-regex 参数

参数

说明

src

信息源。

allow/deny

包含一个正则表达式字符串。

示例

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

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 操作程序会将新值赋予给定的信息源。这样便可在过滤处理期间进行编辑。此操作程序可指定一个显式新值,也可从另一信息源复制一个值。

参数

表 10-10 列出了与 assign-source 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-10 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 操作程序。

参数

表 10-11 列出了与 assign-type-by-extension 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-11 assign-type-by-extension 参数

参数

说明

src

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

示例

MetaData fn=assign-type-by-extension

clear-source

clear-source 操作程序可删除指定的数据源。通常不需要执行此操作程序。可使用 assign-source 创建或替换源。

参数

表 10-12 列出了与 clear-source 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-12 clear-source 参数

参数

说明

src

要删除的源的名称。

示例

以下示例删除 path 源:

MetaData fn=clear-source src=path

convert-to-html

如果目前资源的类型与指定的 MIME 类型匹配,则 convert-to-html 操作程序会将目前资源转换成 HTML 文件,以进一步处理。转换过滤器会自动检测要转换的文件的类型。

参数

表 10-13 列出了与 convert-to-html 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-13 convert-to-html 参数

参数

说明

type

要转换的资源的 MIME 类型。

示例

如果按以下顺序调用操作程序,过滤器就会将全部 Adobe Acrobat PDF 文件、Microsoft RTF 文件和 FrameMaker MIF 文件转换成 HTML 文件,并会将发送该文件的服务器所未指定的类型的任意文件转换成 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 操作程序可将资源描述中的某个字段的值复制到另一个字段中。

参数

表 10-14 列出了与 copy-attribute 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-14 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 操作程序才会利用指定的值生成源。

参数

表 10-15 列出了与 generate-by-exact 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-15 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 操作程序才会利用指定的值生成源。

参数

表 10-16 列出了与 generate-by-prefix 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-16 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 操作程序才会利用指定的值生成源。

参数

表 10-17 列出了与 generate-by-regex 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-17 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> 标记)从资源获取任意到期数据。如果不存在到期数据,将生成一个距目前日期三个月的到期日期。

参数

表 10-18 列出了与 generate-rd-expires 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-18 generate-rd-expires 参数

参数

说明

dst

源的名称。如果省略,则默认为 rd-expires

示例

Generate fn=generate-rd-expires

generate-rd-last-modified

generate-rd-last-modified 操作程序可将目前时间添加到指定的源。

参数

表 10-19 列出了与 generate-rd-last-modified 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-19 generate-rd-last-modified 参数

参数

说明

dst

源的名称。如果省略,则默认为 rd-last-modified

示例

Generate fn=generate-last-modified

rename-attribute

rename-attribute 操作程序可更改资源描述中字段的名称。此操作程序常用于某些情形(例如,extract-html-meta<META> 标记中的信息复制到某个字段中,并且您想更改该字段的名称)。

参数

表 10-20 列出了与 generate-rd-last-modified 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-20 generate-rd-last-modified 参数

参数

说明

src

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

示例

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

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


枚举操作程序

以下操作程序在“枚举”阶段运行。这些操作程序控制 robot 是否及如何从指定资源收集链接,以用作进一步发现资源的起点。本部分介绍下列操作程序:

enumerate-urls

enumerate-urls 操作程序可扫描资源,并枚举在超文本链接中找到的全部 URL。利用这些结果可产生更多的资源发现结果。可指定内容类型,以限制枚举的 URL 的类型。

参数

表 10-21 列出了与 enumerate-urls 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-21 enumerate-urls 参数

参数

说明

max

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

type

内容类型,用于对那些具有指定内容类型的 URL 的枚举进行限制。type 是一个可选参数。如果省略此参数,将会枚举全部 URL。

示例

以下示例只枚举最多 1024 个 HTML URL:

Enumerate fn=enumerate-urls type=text/html

enumerate-urls-from-text

enumerate-urls-from-text 操作程序可扫描文本资源,查找与正则表达式 URL:.* 匹配的字符串。它使 robot 枚举这些字符串中的 URL,并生成更多的资源描述。

参数

表 10-22 列出了与 enumerate-urls-from-text 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-22 enumerate-urls-from-text 参数

参数

说明

max

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

示例

Enumerate fn=enumerate-urls-from-text


生成操作程序

在过滤的“生成”阶段将使用下列操作程序。生成阶段的操作程序可生成加入到资源描述中的信息。通常,它们可从资源本身的正文中提取信息,也可从资源的元数据复制信息。本部分介绍下列操作程序:

extract-full-text

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


注意

使用 extract-full-text 操作程序时应小心,因为它能够明显增加资源描述的长度,从而导致数据库膨胀,并从整体上对网络带宽造成负面影响。


参数

表 10-23 列出了与 extract-full-text 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-23 extract-full-text 参数

参数

说明

truncate

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

dst

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

示例

Generate fn=extract-full-text

extract-html-meta

extract-html-meta 操作程序可从 HTML 文件提取任意 <META><TITLE> 信息,并将其添加到资源描述中。可指定内容类型,以限制生成的 URL 的类型。

参数

表 10-24 列出了与 extract-html-meta 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-24 extract-html-meta 参数

参数

说明

truncate

要提取的最大字节数。

type

可选参数。如果省略此参数,将生成全部 URL。

示例

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

extract-html-text

extract-html-text 操作程序可从 HTML 文件提取文本开头的几个字符(不包括 HTML 标记),并将文本添加到资源描述中。这样就可以将文档文本的开始部分加入到 RD 中。可指定内容类型,以限制生成的 URL 的类型。

参数

表 10-25 列出了与 extract-html-text 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-25 extract-html-text 参数

参数

说明

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 报头提取目录,并将其添加到资源描述中。

参数

表 10-26 列出了与 extract-html-toc 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-26 extract-html-toc 参数

参数

说明

truncate

要提取的最大字节数。

level

要提取的最大 HTML 报头级别。此参数可控制目录的深度。

示例

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

extract-source

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

参数

表 10-27 列出了与 extract-source 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-27 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

参数

表 10-28 列出了与 harvest-summarizer 操作程序一起使用的参数。该表由两列组成。第一列为参数,第二列提供参数说明。

表 10-28 harvest-summarizer 参数

参数

说明

summarizer

摘要器程序的名称。

示例

Generate fn-harvest-summarizer summarizer=HTML.sum


停止运行操作程序

枚举操作程序和生成操作程序均可在停止运行阶段使用以下操作程序。

filterrules-shutdown

规则运行后,filterrules-shutdown 操作程序可执行清除和停止运行功能。

参数

示例

Shutdown fn=filterrules-shutdown



上一页      目录      索引      下一页     


版权所有 2003 Sun Microsystems, Inc. 保留所有权利。