この章では、Sun JavaTM System Portal Server 検索サーバーロボットとその対応する設定ファイルについて説明します。この章には、次のトピックが含まれています。
検索サーバーロボットは、ドメイン内のリソースを特定し、レポートを作成するエージェントです。これには、2 種類のフィルタを使用します。列挙子フィルタとジェネレータフィルタです。
列挙子フィルタは、ネットワークプロトコルを使用してリソースを検出します。列挙子フィルタは、各リソースをテストし、適切な基準に一致した場合はリソースを列挙します。たとえば、列挙子フィルタは HTML ファイルからハイパーテキストリンクを抽出し、そのリンクを使用して別のリソースを検索できます。
ジェネレータフィルタは各リソースをテストし、リソース記述 (RD) を作成する必 要があるかどうかを確認します。リソースがテストに合格した場合、ジェネレータは検索サーバーデータベースに格納される RD を作成します。
ロボットを管理するために必要な設定と保守タスクについては、次の節で説明します。
図 19–1 は、ロボットが URL と関連するネットワークリソースを調べる方法を示しています。列挙機能と生成機能の両方が各リソースをテストします。リソースが列挙テストに合格すると、ロボットがそのリソースをほかの URL について検査します。リソースがジェネレータテストに合格すると、ロボットは検索サーバーデータベースに格納されているリソース記述を生成します。
ロボット設定ファイルでは、ロボットの動作が定義されます。これらのファイルは、/var/opt/SUNWportal/searchservers/searchserverid/config ディレクトリにあります。次のリストは、各ロボット設定ファイルを説明しています。
ロボットが生成する RD の分類に使用されるルールを含みます。
ロボットが使用する列挙フィルタと生成フィルタを定義します。
ロボットのサイト定義、開始ポイント URL、MIME タイプに基づくフィルタリングルール、および URL パターンを含みます。
ロボットのオペレーティングプロパティーのほとんどを定義します。
検索サーバー管理インタフェースを使用すれば、ほとんどのプロパティーを設定できるので、通常は robot.conf ファイルを編集する必要はありません。ただし、上級ユーザーはこのファイルを手動で編集することにより、インタフェースを介してでは設定できないプロパティーを設定することができます。
ロボットはリソースを見つけて、それらの記述をデータベースに追加するかどうかを決定します。どのサーバーを訪問し、サーバーのどの部分のインデックスを作成するかの判断は、サイト定義と呼ばれます。
ロボットのサイトの定義は、サーバー管理者のもっとも重要な作業の 1 つです。ロボットは、インデックス作成が必要なすべてのサーバーに送信しなければなりませんが、同時に、データベース領域を過度に拡張して正確な情報の検索を困難にする可能性のある外部サイトを排除することも必要です。
ロボットは、インデックスの作成のために選択したさまざまなサイトへのリンクを抽出し、追跡します。システム管理者は、次のようなさまざまな設定によって、これらのプロセスを制御できます。
ロボットの起動、停止、スケジューリング
ロボットが訪問するサイトの定義
巡回の頻度を指定する巡回属性
フィルタを定義することによる、ロボットがインデックスを作成するリソースタイプ
インデックス属性を定義することによる、ロボットがデータベースに作成するエントリの種類
ロボットの巡回属性についての説明は、『Sun Java System Portal Server 7.2 Technical Reference』を参照してください。
フィルタを使用すると、リソースの属性をフィルタ定義と比較することでリソースを識別できるようになるので、これを除外することも、含むこともできます。ロボットは多くの事前定義されたフィルタを提供します。一部のフィルタはデフォルトで有効です。次のフィルタは事前定義されています。アスタリスク (*) の付いたファイルがデフォルトで有効です。
アーカイブファイル*
オーディオファイル*
バックアップファイル*
バイナリファイル*
CGI ファイル*
画像ファイル*
Java、JavaScript、スタイルシートファイル*
ログファイル*
Lotus Domino ドキュメント
Lotus Domino オープンビュー
プラグインファイル
Power Point ファイル
リビジョン管理ファイル*
ソースコードファイル*
スプレッドシートファイル
システムディレクトリ (UNIX)
システムディレクトリ (NT)
一時ファイル*
ビデオファイル*
新規フィルタ定義の作成、フィルタ定義の変更、またはフィルタの有効化または無効化が可能です。詳細は、「リソースフィルタリング処理」を参照してください。
ロボットには次の 2 つのデバッグツールまたはユーティリティーがあります。
検索データを最新に維持するには、ロボットがサイトを定期的に検索して、インデックスを作成する必要があります。ロボットの巡回とインデックス作成は処理リソースとネットワークの帯域幅を消費する場合があるため、ピーク以外の時間帯にロボットを実行するようにスケジュール設定してください。管理コンソールを使用すると、管理者はロボットを実行するスケジュールをセットアップすることができます。
ここでは、ロボットを管理するための次のタスクについて説明します。
「管理コンソールにログインする」の手順に従って、管理コンソールにログインします。
メニューバーから「検索サーバー」を選択します。サーバーのリストから検索サーバーを選択します。
メニューバーの「ロボット」をクリックし、メニューの「状態と制御」をクリックします。
「起動」をクリックします。
『Sun Java System Portal Server 7.2 Command-Line Reference』の「psadmin start-robot」
コマンド psadmin start-robot の場合、ロボットが巡回できるサイトが定義されていない場合、検索ロボットは起動しません。コマンド psadmin start-robot は、サイトが使用できない場合、次のように表示します。開始位置:0 個が定義されています。
「管理コンソールにログインする」の手順に従って、管理コンソールにログインします。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
メニューバーの「ロボット」を選択し、「状態と制御」を選択します。
「ロボットデータベースをクリアー」をクリックします。
ロボットはリソースを見つけて、それらの記述をデータベースに追加するかどうかを決定します。どのサーバーを訪問し、サーバーのどの部分のインデックスを作成するかの判断は、サイト定義と呼ばれます。
「管理コンソールにログインする」の手順に従って、管理コンソールにログインします。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
メニューバーから「ロボット」、「サイト」を選択します。
「サイトの管理」の「新規」をクリックし、サイトの設定属性を指定します。
属性の詳細については、『Sun Java System Portal Server 7.2 Technical Reference』の「Sites」を参照してください。
「了解」をクリックします。
「管理コンソールにログインする」の手順に従って、管理コンソールにログインします。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
メニューバーから「ロボット」、「サイト」をクリックします。
変更するサイトの名前をクリックします。
「サイトを編集」ダイアログが表示されます。
必要に応じて設定属性を変更します。
属性の詳細については、『Sun Java System Portal Server 7.2 Technical Reference』の「Sites」を参照してください。
「了解」をクリックして変更を記録します。
ロボットは、インデックスの作成のために選択したさまざまなサイトを巡回します。巡回およびインデックス作成の操作プロパティーを定義することでロボットがサイトを巡回する方法を制御できます。
「管理コンソールにログインする」の手順に従って、管理コンソールにログインします。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
メニューバーから「ロボット」、「プロパティー」をクリックします。
必要に応じてロボットの巡回とインデックス作成の属性を指定します。
属性の詳細については、『Sun Java System Portal Server 7.2 Technical Reference』の「Properties」を参照してください。
「保存」をクリックします。
シミュレータは、一覧表示された 1 つまたは複数のサイトのロボットフィルタリングの部分的なシミュレーションを実行します。
「管理コンソールにログインする」の手順に従って、管理コンソールにログインします。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
メニューバーから「ロボット」、「ユーティリティー」をクリックします。
シミュレーションを行う新しいサイトの URL を「新しい URL を追加」テキストボックスに入力して「追加」をクリックします。
「既存のロボットサイト」の下に一覧表示される既存のサイト上でシミュレータを実行することもできます。
「シミュレータの実行」をクリックします。
サイトプローブユーティリティーは、DNS エイリアス、サーバーリダイレクト、仮想サーバーなどの情報を確認します。
「管理コンソールにログインする」の手順に従って、管理コンソールにログインします。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
メニューバーから「ロボット」、「ユーティリティー」をクリックします。
プローブするサイトの URL を入力します。
(省略可能) プローブで DNS 情報を取得するには、「サイトプローブ」で「DNS 情報の詳細を表示」を選択します。
「サイトプローブの実行」をクリックします。
ロボットはフィルタを使用して、処理するリソースとそのリソースの処理方法を決定します。ロボットがリソースと同時にリソースの参照を検出すると、各リソースにフィルタを適用します。フィルタはそれらのリソースを列挙し、検索サーバーデータベースに格納するリソース記述を生成するかどうかを決定します。
ロボットは 1 つあるいは複数の開始ポイント URL を調べ、フィルタを適用し、それらの URL などを列挙して生成された URL にそのフィルタを適用します。開始ポイント URL は filterrules.conf ファイルで定義されます。
列挙フィルタと生成フィルタはそれぞれ、必須である初期化操作を実行し、現在のリソースに比較テストを適用します。各テストは、リソースを許可または拒否することが目標です。各フィルタにはシャットダウンフェーズも備わっており、クリーンアップ操作を実行します。
リソースが許可されると、フィルタの通過が続行されます。最終的にロボットはそのリソースを列挙し、さらにほかのリソースを検出しようとします。ジェネレータはリソース記述も作成できます。
リソースが否認される場合、そのリソースは拒否されます。拒否されたリソースのフィルタは、それ以上動作しません。
これらの操作は必ずしも連携されていません。リソースには列挙につながるものもあれば、RD 生成につながるものもあります。多くのリソースは列挙にも、RD 生成にもつながります。たとえば、リソースが FTP ディレクトリである場合、一般的にはそのリソース用に RD は生成されません。ただし、ロボットは FTP ディレクトリの個別ファイルを列挙できます。ほかのドキュメントへのリンクを含む HTML ドキュメントは、RD を生成し、また、関連のドキュメントを列挙することもできます。
次の節では、フィルタ処理について説明します。
列挙フィルタ、生成フィルタのどちらにも、フィルタリング処理における 5 つのフェーズがあります。
セットアップ: 初期化処理を行います。ロボットが存在する間、一度だけ発生します。
メタデータ: そのリソースについて利用可能なメタデータに基づき、リソースをフィルタリングします。リソースがネットワークを介して取得される前に、メタデータのフィルタリングがリソースごとに 1 回実行されます。表 19–1 は、共通のメタデータタイプの例を示しています。
メタデータタイプ |
説明 |
例 |
---|---|---|
完全な URL |
リソースの場所 |
http://home.siroe.com/ |
プロトコル |
URL のアクセス部分 |
http、ftp、file |
ホスト |
URL のアドレス部分 |
www.siroe.com |
IP アドレス |
ホストの数値バージョン |
198.95.249.6 |
PATH |
URL のパス部分 |
/index.html |
深さ |
開始ポイント URL からのリンク数 |
5 |
データ: リソースのデータに基づいてリソースをフィルタリングします。データのフィルタリングは、ネットワークを介してデータが取得されたあとにリソースごとに 1 回実行されます。フィルタリングに使用できるデータには、次のものがあります。
content-type
content-length
content-encoding
content-charset
last-modified
expires
列挙: 検査すべきほかのリソースを参照するかどうかを判断するため、現行のリソース中の参照を列挙します。
生成: リソースのリソース記述 (RD) を生成し、検索サーバーデータベースにその RD を保存します。
シャットダウン: 必要な終了操作を実行します。この処理は、ロボットが存在する間、一度だけ発生します。
filter.conf ファイルには、列挙フィルタおよび生成フィルタの定義が含まれています。このファイルには、列挙と生成の両方について、複数のフィルタを含むことができます。ロボットが使用するフィルタは、robot.conf ファイルの enumeration-filter プロパティーおよび generation-filter プロパティーで指定されます。
フィルタの定義には、次のように明確に定義された構造があります。ヘッダー、本文、終了です。ヘッダーは、フィルタの開始を識別し、たとえば次のように名前を宣言します。
<Filter name="myFilter"> |
本文は、セットアップ、テスト、列挙または生成、およびシャットダウン中のフィルタの動作を定義する一連のフィルタディレクティブで構成されています。各ディレクティブでは、関数とその関数のプロパティー (該当する場合) を指定します。
終了は </Filter> によって示されます。
例 19–1 は、enumeration1 という名のフィルタを示しています。
<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 クラスが、「リソースフィルタリング処理」に示したフィルタリングのフェーズや操作に対応しています。
Setup
Metadata
Data
Enumerate
Generate
Shutdown
各ディレクティブは、独自のロボットアプリケーション関数を持っています。たとえば、Metadata ディレクティブおよび Data ディレクティブではフィルタリング関数、Enumerate ディレクティブでは列挙関数、Generate ディレクティブでは生成関数を使用します。
ロボットアプリケーションの組み込み関数と、独自のロボットアプリケーション関数を記述する手順については、『Sun Java System Portal Server 7.1 Developer's Guide』を参照してください。
ほとんどの場合、管理コンソールを使用すると、ほとんどのサイト定義ベースのフィルタを作成できます。修正が必要な場合は、filter.conf ファイルおよび filterrules.conf ファイルを変更することができます。これらのファイルは、/var/opt/SUNWportal/searchservers/searchserverid/config ディレクトリにあります。
より複雑なプロパティーのセットを作成するには、ロボットが使用する設定ファイルを編集します。
フィルタを記述または変更する場合は、次の順序に注意してください。
ディレクティブの実行 (特に各フェーズで使用可能な情報)
filterrules.conf のフィルタルール
次も実行できます。
robot.conf ファイルでプロパティーを変更する。
filter.conf ファイルでロボットアプリケーション関数を変更する。
独自のロボットアプリケーション関数を作成する。
詳細については、『 Sun Java System Portal Server 7.1 Developer's Guide』を参照してください。
この節では、ロボットフィルタを管理するための次のタスクについて説明します。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
メニューバーから「ロボット」、「フィルタ」を選択します。
「新規」をクリックします。
「新しいロボットフィルタウィザード」が表示されます。
指示に従って指定されたフィルタを作成します。
テキストボックスにフィルタ名とフィルタの説明を入力し、「次へ」をクリックします。
フィルタの定義と動作を指定し、「完了」をクリックします。
フィルタ属性の詳細については、『Sun Java System Portal Server 7.2 Technical Reference』の「Filters」を参照してください。
「閉じる」をクリックして新しいフィルタを読み込みます。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
メニューバーから「ロボット」、「フィルタ」を選択します。
フィルタを選択します。
「削除」をクリックします。
表示される確認ダイアログボックスで「了解」をクリックします。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
メニューバーから「ロボット」、「フィルタ」を選択します。
フィルタを選択して「編集」をクリックします。
「フィルタを編集」ページが表示されます。
必要に応じて設定属性を変更します。
フィルタ属性の詳細については、『Sun Java System Portal Server 7.2 Technical Reference』の「Filters」を参照してください。
「了解」をクリックします。
ドキュメントは、この値に設定した最大数を上限として、任意の数のカテゴリに割り当てることができます。分類ルールはフロー制御による判定を実行しないので、ロボットフィルタルールよりも単純です。分類ルールでは、特定のカテゴリをリソース記述の一部としてリソースに割り当てるための条件を決定する必要があります。分類ルールは、「もしある条件が真ならば、リソースを <カテゴリ> に割り当てる」という形式の簡単な条件文で作成されます。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
メニューバーから「ロボット」を選択し、「分類ルール」を選択します。
「分類ルール」を選択して「新規」をクリックします。
「新規分類ルール」ダイアログボックスが表示されます。
必要に応じて設定属性を指定します。
属性の詳細については、『Sun Java System Portal Server 7.2 Technical Reference』の「Manage Classification Rules」を参照してください。
「了解」をクリックします。
メニューバーから「検索サーバー」を選択し、検索サーバーを選択します。
「ロボット」を選択し、メニューバーから「分類ルール」を選択します。
分類ルールを選択して「編集」をクリックします。
必要に応じて属性を変更します。
属性の詳細については、『Sun Java System Portal Server 7.2 Technical Reference』の「Manage Classification Rules」を参照してください。
「了解」をクリックします。
ほとんどのロボットアプリケーション関数 (RAF) は情報のソースを必要とし、デスティネーションに送信するデータを生成します。ソースはロボット内で定義され、最終的に生成されるリソース記述のフィールドに関連している必要はありません。一方、デスティネーションは通常、リソース記述サーバーのスキーマによって定義されるリソース記述のフィールド名になります。
次の節では、フィルタリングプロセスの各段階と、それらの段階で使用できるソースについて説明します。
セットアップ段階では、フィルタが設定されますが、リソースの URL またはコンテンツについての情報は取得できません。
メタデータ段階ではロボットはリソースの URL を検出しますが、リソースのコンテンツはダウンロードしていません。このため、filter.conf ファイルなどのほかのソースから派生するデータと、URL についての情報が使用可能です。ただし、この段階では、リソースのコンテンツについての情報は使用できません。
表 19–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 |
protocol |
URL のアクセス部分 |
http、https、ftp、file |
path |
URL のパス部分 |
/、/index.html、/documents/listing.html |
URL |
完全な URL |
http://developer.siroe.com/docs/manuals/ |
データ段階では、ロボットがその URL のリソースのコンテンツをダウンロードしているので、記述、作成者などのコンテンツに関するデータにアクセスできます。
リソースが HTML ファイルである場合、ロボットは HTML ヘッダーの <META> タグをパースします。したがって、<META> タグに含まれるデータは、データ段階で使用可能です。
データ段階では、メタデータ段階で使用可能なソースのほかに、次のソースを RAF で使用できます。
表 19–3 データ段階で RAF で使用できるソース
ソース |
説明 |
例 |
---|---|---|
content-charset |
リソースが使用する文字セット | |
content-encoding |
エンコードの形式 | |
content-length |
リソースのバイト単位のサイズ | |
content-type |
リソースの MIME タイプ |
text/html、image/jpeg |
expires |
リソースが期限切れになる日付 | |
last-modified |
リソースの最終更新日 | |
<META> タグ内のデータ |
HTML リソースのヘッダーの <META> タグで提供されるデータ |
作成者、記述、キーワード |
<META> タグのデータを除くこれらのすべてのソースは、リソースの取得時に返される HTTP 応答ヘッダーから派生されます。
列挙および生成の段階では、データ段階と同じデータソースが使用可能です。詳細については、表 19–3を参照してください。
シャットダウン段階では、フィルタはフィルタリングを完了し、シャットダウンします。この段階用に書き込まれた関数は、データ段階で使用可能なソースと同じデータソースを使用できますが、シャットダウン関数の動作は通常、ロボットの終了およびクリーンアップに制限されます。
各関数には enable プロパティーがあります。値には、true、false、on、または off を指定できます。管理コンソールは、これらのパラメータを使用して特定のディレクティブを有効または無効にします。
次の例は 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 プロパティーの追加は、行をコメントアウトするのと同じ効果があります。管理コンソールは、コメントを書き込まないため、これらのプロパティーが使用されます。
ここでは、列挙および生成フィルタの両方によってセットアップ段階中に使用される関数について説明します。関数については、次の節で説明します。
filterrules-setup 関数を使用する場合、logtype ログファイルを使用します。値には、verbose、normal、または terse を指定できます。
このフィルタが使用するフィルタルールを含むファイルのパス名。
Setup fn=filterrules-setup
config="/var/opt/SUNWportal/searchservers/search1/config/filterrules.conf"
setup-regex-cache 関数は、filter-by-regex および generate-by-regex 関数の キャッシュサイズを初期化します。デフォルト値である 32 以外の数値を指定するときは、この関数を使用します。
regex キャッシュに保持されるコンパイル済み正規表現の最大数。
Setup fn=setup-regex-cache cache-size=28
setup-type-by-extension 関数はファイル名の拡張子を認識するようにフィルタを設定します。この関数を呼び出してから、assign-type-by-extension 関数を使用します。プロパティーとして指定されたファイルは、標準の MIME コンテンツタイプとファイル拡張子の文字列の間のマッピングを含む必要があります。
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 文字列が情報のソースに完全に一致する場合、リソースを許可または拒否します。キーワード all は任意の文字列と一致します。
情報のソース。
文字列を含みます。
次の例は、content-type が text/plain のリソースすべてをフィルタして取り除きます。これにより、ほかのすべてのリソースの処理が続行されます。
Data fn=filter-by-exact src=type deny=text/plain
filter-by-max 関数では、指定された情報ソースが指定値以下の場合にリソースが許可されます。情報ソースが指定された値よりも大きい場合は、リソースは拒否されます。
この関数は、1 つのフィルタについて 1 回しか呼び出すことができません。
filter-by-max 関数は、filter-by-max 関数で使用するプロパティーを一覧表示します。
情報のソース。hosts、objects、または depth
比較のための値を指定します。
この例は、content-length が 1024K バイトより小さいリソースを許可します。
MetaData fn-filter-by-max src=content-length value=1024
filter-by-md5 関数は、指定の MD5 チェックサム値を持つ最初のリソースだけを許可します。このロボットによって、現在のリソースの MD5 が以前のリソースで検出された場合、現在のリソースは拒否されます。この関数は、複数の URL を持つ同一のリソースまたは単一のリソースの重複を防ぎます。
この関数は、データ段階またはそれ以降の段階でだけ呼び出すことができます。この関数は、1 つのフィルタについて 1 回しか呼び出すことができません。フィルタは generate-md5 関数を呼び出し、filter-by-md5 を呼び出す前に MD5 チェックサムを生成する必要があります。
なし
次の例は、MD5 チェックサムを処理する一般的な方法を示します。最初にチェックサムを生成し、そのチェックサムに基づいてフィルタリングします。
Data fn=generate-md5
Data fn=filter-by-md5
filter-by-prefix 関数は、指定の情報ソースが指定されたプレフィックス文字列で開始する場合、リソースを許可または拒否します。リソースは、完全に一致する必要はありません。キーワード all は任意の文字列と一致します。
情報のソース。
プレフィックス比較の文字列を含みます。
次の例は、content-type が text/html や text/plain など、任意の種類のテキストであるリソースを許可します。
MetaData fn=filter-by-prefix src=type allow=text
filter-by-regex 関数は、正規表現によるパターンマッチングをサポートします。この関数は、指定の正規表現に一致するリソースを許可します。サポートされる正規表現構文は、POSIX.1 仕様によって定義されます。\\\\* の正規表現は、任意の文字に一致します。
情報のソース。
正規表現の文字列を含みます。
次の例は、政府 (.gov) ドメインのサイトからのすべてのリソースを拒否します。
MetaData fn=filter-by-regex src=host deny=\\\\*.gov
filterrules-process 関数は、filterrules.conf ファイルのサイト定義とフィルタルールを処理します。
なし
MetaData fn=filterrules-process
サポート関数は、リソース上で情報を操作または生成するため、フィルタリング中に使用されます。ロボットは、フィルタリング関数を呼び出すことによって、リソースを処理することができます。これらの関数は、ファイル filter.conf の列挙および生成のフィルタで使用することができます。
assign-source 関数は、指定した情報ソースに新規の値を割り当てます。この関数により、フィルタリング処理中の編集が可能になります。この関数は、明示的な新規値を割り当てるか、または、別の情報ソースから値をコピーすることができます。
値を変更するソースの名前。
明示的な値を指定。
dst にコピーする情報ソース。
value プロパティーまたは src プロパティーのどちらかを指定する必要がありますが、両 方は指定しません。
Data fn=assign-source dst=type src=content-type
assign-type-by-extension 関数は、リソースのファイル名を使用してタイプを決定し、処理を継続するリソースにこのタイプを割り当てます。
assign-type-by-extension を使用可能にするには、セットアップ中にsetup-type-by-extension 関数を呼び出す必要があります。
比較するファイル名のソース。ソースを指定しない場合、デフォルトではリソースのパスになります。
MetaData fn=assign-type-by-extension
clear-source 関数は、指定されたデータソースを削除します。通常は、この関数を実行する必要はありません。assign-source 関数を使用することにより、ソースを作成または置換することができます。
削除するソースの名前。
次の例は、パスのソースを削除します。
MetaData fn=clear-source src=path
convert-to-html 関数は、リソースのタイプが指定の MIME タイプと一致する場合、現在のリソースを HTML ファイルに変換して処理を継続します。変換フィルタは、変換中のファイルのタイプを自動的に検出します。
変換を行う 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 関数は、リソース記述の 1 つのフィールドからの値を別のフィールドにコピーします。
コピー元のリソース記述のフィールド。
ソースのコピー先のリソース記述の項目。
コピーするソースの最大長。
省略されたテキストを修正するかどうか、分割された単語を修正するかを示す論理値プロパティー。デフォルトでは、このプロパティーは false に設定されています。
Generate fn=copy-attribute \\
src=partial-text dst=description truncate=200 clean=true
generate-by-exact 関数は、既存のソースが別の値と完全に一致する場合にかぎり、指定された値を持つソースを生成します。
生成するソースの名前。
dst に割り当てる値。
比較対象のソース。
次の例は、ホストが www.siroe.com の場合に、分類を siroe に設定します。
Generate fn="generate-by-exact" match="www.siroe.com:80" src="host" value="Siroe" dst="classification"
この generate-by-prefix 関数は、既存のソースのプレフィックスが別の値と一致する場合に、指定された値を持つソースを生成します。
生成するソースの名前。
dst に割り当てる値。
比較対象のソース。
src と比較する値。
次の例は、プロトコルプレフィックスが HTTP の場合、分類を World Wide Web に設定します。
Generate fn="generate-by-prefix" match="http" src="protocol" value="World Wide Web" dst="classification"
generate-by-regex 関数は、既存のソースが正規表現に一致する場合に、指定した値を持つソースを生成します。
生成するソースの名前。
dst に割り当てる値。
比較対象のソース。
src と比較する正規表現の文字列。
次の例は、ホスト名が正規表現 *.siroe.com に一致する場合に、分類を siroe に設定します。たとえば、developer.siroe.com および home.siroe.com の両方にあるリソースは、Siroe として分類されます。
Generate fn="generate-by-regex" match="\\\\*.siroe.com" src="host" value="Siroe" dst="classification"
generate-md5 関数は、MD5 チェックサムを生成し、リソースに追加します。これにより、filter-by-md5 関数を使用して、重複する MD5 チェックサムを持つリソースを拒否することができます。
なし
Data fn=generate-md5
generate-rd-expires 関数は、有効期限を生成して、指定されたソースに追加します。この関数は、HTTP ヘッダーおよび HTML <META> タグなどのメタデータを使用し、リソースから任意の有効期限を取得します。有効期限が存在しない場合は、現在の日付から 3 ヶ月間の有効期限を生成します。
ソースの名前。指定を省略した場合、ソースのデフォルトは rd-expires となります。
Generate fn=generate-rd-expires
generate-rd-last-modified 関数は、現在の時間を指定されたソースに追加します。
ソースの名前。指定を省略した場合、ソースのデフォルトは rd-last-modified となります。
Generate fn=generate-last-modified
rename-attribute 関数は、リソース記述のフィールドの名前を変更します。この関数は、たとえば、extract-html-meta で <META> タグからフィールドに情報をコピーし、そのフィールドの名前を変更する場合にとても便利です。
1 つの名前から別の名前へのマッピングを含む文字列。
次の例は、属性の名前を author から author-name に変更します。
Generate fn=rename-attribute src="author->author-name"
次の関数は、列挙段階で動作します。これらの関数は、ロボットが指定のリソースからリンクを収集するかどうか、およびその方法を制御し、リソースの発見を継続する開始点として使用します。
enumerate-urls 関数はリソースをスキャンし、ハイパーテキストリンクで検出されるすべての URL を列挙します。結果を使用して、リソース発見を継続します。コンテンツタイプを指定し、列挙される URL の種類を制限することができます。
指定のリソースから生成する URL の最大数。デフォルトは 1024 です。
指定したコンテンツタイプの URL に列挙を制限するコンテンツタイプ。type はオプションのプロパティーです。指定を省略した場合、すべての URL が列挙されます。
次の例は、HTML URL だけを、最大値 1024 まで列挙します。
Enumerate fn=enumerate-urls type=text/html
enumerate-urls-from-text 関数はテキストリソースをスキャンし、次の正規表現に一致する文字列を検索します。URL:.*。この関数はロボットを生成し、これらの文字列から URL を列挙し、さらにリソース記述を生成します。
指定のリソースから生成する URL の最大数。max の指定を省略した場合、デフォルトは 1024 となります。
Enumerate fn=enumerate-urls-from-text
生成関数は、フィルタリングの生成段階で使用されます。生成関数は、リソース記述に入る情報を作成することができます。通常、リソースの本体から情報を抽出するか、リソースのメタデータから情報をコピーします。
extract-full-text 関数は、リソースの完全なテキストを抽出して、リソース記述に追加します。
extract-full-text 関数の使用には注意が必要です。リソース記述のサイズを非常に大きくすることができるため、データベースが膨大化したり、ネットワーク帯域幅全体に悪影響を及ぼしたりする可能性があります。
Generate fn=extract-full-text
リソースから抽出する文字の最大数。
完全なテキストを受信するスキーマ項目の名前。
extract-html-meta 関数は、HTML ファイルから任意の <META> または <TITLE> 情報を抽出し、リソース記述に追加します。コンテンツタイプの指定により、生成する URL の種類が制限される場合があります。
抽出する最大バイト数。
省略可能なプロパティー。指定を省略した場合は、すべての URL が生成されます。
Generate fn=extract-html-meta truncate=255 type=text/html
extract-html-text 関数は、HTML タグを除いた、テキストの最初の数文字を HTML ファイルから抽出し、そのテキストをリソース記述に追加します。この関数により、ドキュメントのテキストの最初の部分を RD に含むことができます。コンテンツタイプの指定により、生成する URL の種類が制限される場合があります。
抽出する最大バイト数。
true に設定すると、ドキュメント内で発生する任意の HTML ヘッダーは無視されます。
省略可能なプロパティー。指定を省略した場合は、すべての URL が生成されます。
Generate fn=extract-html-text truncate=255 type=text/html skip-headings=true
extract-html-toc 関数は、HTML ヘッダーから目次を抽出し、リソース記述に追加します。
抽出する最大バイト数。
抽出する HTML ヘッダーの最大レベル。このプロパティーは、目次の深さを制御します。
Generate fn=extract-html-toc truncate=255 level=3
extract-source 関数は、指定のソースから特定の値を抽出し、リソース記述に追加します。
ソース名のリスト。-> 演算子を使用し、RD 属性の新規名を定義できます。たとえば、type->content-type は type という名前のソースの値を取得し、content-type という名前の属性で RD に保存されます。
Generate fn=extract-source src="md5,depth,rd-expires,rd-last-modified"
harvest-summarizer 関数は、リソース上で Harvest サマライザを実行し、結果をリソース記述に追加します。
Harvest サマライザを実行するには、ロボットを実行する前に、path に $HARVEST_HOME/lib/gatherer を設定する必要があります。
サマライザプログラムの名前。
Generate fn-harvest-summarizer summarizer=HTML.sum
filterrules-shutdown 関数は、列挙および生成の両関数によってシャットダウン段階中に使用できます。
ルールが実行されたあと、filterrules-shutdown 関数はクリーンアップおよびシャットダウンを実行します。
なし
Shutdown fn=filterrules-shutdown
robot.conf ファイルは、filter.conf にある適切なフィルタにロボットを指定するなど、ロボット用の多くのオプションを定義します。旧バージョンとの下位互換性のために、robot.conf に開始ポイント URL を含めることもできます。
管理コンソールを使用すれば、ほとんどのプロパティーを設定できるので、通常は robot.conf ファイルを編集する必要はありません。ただし、上級ユーザーはこのファイルを手動で編集することにより、管理コンソールを介してでは設定できないプロパティーを設定することができます。このファイルの例については、「robot.confファイルの例」を参照してください。
表 19–4 は、robot.conf ファイルでユーザーが変更可能なプロパティーを示しています。
表 19–4 ユーザーが変更できるプロパティー
ここでは、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> |