Sun Java System Portal Server 7.2 管理ガイド

リソースフィルタリング処理

ロボットはフィルタを使用して、処理するリソースとそのリソースの処理方法を決定します。ロボットがリソースと同時にリソースの参照を検出すると、各リソースにフィルタを適用します。フィルタはそれらのリソースを列挙し、検索サーバーデータベースに格納するリソース記述を生成するかどうかを決定します。

ロボットは 1 つあるいは複数の開始ポイント URL を調べ、フィルタを適用し、それらの URL などを列挙して生成された URL にそのフィルタを適用します。開始ポイント URL は filterrules.conf ファイルで定義されます。

列挙フィルタと生成フィルタはそれぞれ、必須である初期化操作を実行し、現在のリソースに比較テストを適用します。各テストは、リソースを許可または拒否することが目標です。各フィルタにはシャットダウンフェーズも備わっており、クリーンアップ操作を実行します。

リソースが許可されると、フィルタの通過が続行されます。最終的にロボットはそのリソースを列挙し、さらにほかのリソースを検出しようとします。ジェネレータはリソース記述も作成できます。

リソースが否認される場合、そのリソースは拒否されます。拒否されたリソースのフィルタは、それ以上動作しません。

これらの操作は必ずしも連携されていません。リソースには列挙につながるものもあれば、RD 生成につながるものもあります。多くのリソースは列挙にも、RD 生成にもつながります。たとえば、リソースが FTP ディレクトリである場合、一般的にはそのリソース用に RD は生成されません。ただし、ロボットは FTP ディレクトリの個別ファイルを列挙できます。ほかのドキュメントへのリンクを含む HTML ドキュメントは、RD を生成し、また、関連のドキュメントを列挙することもできます。

次の節では、フィルタ処理について説明します。

フィルタ処理の段階

列挙フィルタ、生成フィルタのどちらにも、フィルタリング処理における 5 つのフェーズがあります。

表 19–1 共通のメタデータタイプ

メタデータタイプ 

説明 

例 

完全な URL 

リソースの場所 

http://home.siroe.com/

プロトコル 

URL のアクセス部分 

httpftpfile

ホスト 

URL のアドレス部分 

www.siroe.com

IP アドレス 

ホストの数値バージョン 

198.95.249.6 

PATH 

URL のパス部分 

/index.html

深さ 

開始ポイント URL からのリンク数 

フィルタの構文

filter.conf ファイルには、列挙フィルタおよび生成フィルタの定義が含まれています。このファイルには、列挙と生成の両方について、複数のフィルタを含むことができます。ロボットが使用するフィルタは、robot.conf ファイルの enumeration-filter プロパティーおよび generation-filter プロパティーで指定されます。

フィルタの定義には、次のように明確に定義された構造があります。ヘッダー、本文、終了です。ヘッダーは、フィルタの開始を識別し、たとえば次のように名前を宣言します。


<Filter name="myFilter">

本文は、セットアップ、テスト、列挙または生成、およびシャットダウン中のフィルタの動作を定義する一連のフィルタディレクティブで構成されています。各ディレクティブでは、関数とその関数のプロパティー (該当する場合) を指定します。

終了は </Filter> によって示されます。

例 19–1 は、enumeration1 という名のフィルタを示しています。


例 19–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) を使用して、操作を実行します。このディレクティブの使用法および実行の流れは、Sun Java System Web Server の obj.conf ファイルの NSAPI ディレクティブおよびサーバーアプリケーション関数 (SAF) とよく似ています。NSAPI、SAF と同様に、pblocks とも呼ばれるプロパティーブロックを使用して、データは格納および送信されます。

6 つのロボットディレクティブ、または RAF クラスが、「リソースフィルタリング処理」に示したフィルタリングのフェーズや操作に対応しています。

各ディレクティブは、独自のロボットアプリケーション関数を持っています。たとえば、Metadata ディレクティブおよび Data ディレクティブではフィルタリング関数、Enumerate ディレクティブでは列挙関数、Generate ディレクティブでは生成関数を使用します。

ロボットアプリケーションの組み込み関数と、独自のロボットアプリケーション関数を記述する手順については、『Sun Java System Portal Server 7.1 Developer's Guide』を参照してください。

フィルタの記述または修正

ほとんどの場合、管理コンソールを使用すると、ほとんどのサイト定義ベースのフィルタを作成できます。修正が必要な場合は、filter.conf ファイルおよび filterrules.conf ファイルを変更することができます。これらのファイルは、/var/opt/SUNWportal/searchservers/searchserverid/config ディレクトリにあります。

より複雑なプロパティーのセットを作成するには、ロボットが使用する設定ファイルを編集します。

フィルタを記述または変更する場合は、次の順序に注意してください。

次も実行できます。

詳細については、『 Sun Java System Portal Server 7.1 Developer's Guide』を参照してください。