Sun ONE ロゴ     前へ      目次      索引      次へ     
Sun ONE Portal Server 6.0 管理者ガイド



第 9 章   検索エンジンロボットの管理

この章では、Sun ONE Portal Server 検索エンジンロボットおよび対応する構成ファイルについて説明します。 この章には、次の節があります。

検索エンジンロボットの概要

検索エンジンロボットは、ドメイン内のリソースを特定し、レポートを作成するエージェントです。 これには 、列挙子フィルタとジェネレータフィルタの 2 種類のフィルタを使用します。

列挙子フィルタは、ネットワークプロトコルを使用してリソースを検出します。 列挙子フィルタは、各リソースをテストし、適切な基準に一致した場合はリソースを列挙します。 たとえば、列挙子フィルタは HTML ファイルからハイパーテキストリンクを抽出し、そのリンクを使用して別のリソースを検索できます。

ジェネレータフィルタは、各リソースをテストし、リソース記述 (RD) を作成する必要があるかどうかを確認します。 リソースがテストに合格した場合、ジェネレータは検索エンジンデータベースに格納される RD を作成します。

ロボットの動作の仕組み

図 9-1 に、検索エンジンロボットの動作の仕組みを示します。 図 9-1 に示すように、ロボットは URL および関連のあるネットワークリソースを調べます。 各リソースは、列挙機能と生成機能の両方によってテストされます。 リソースが列挙テストに合格すると、ロボットがそのリソースをほかの URL について検査します。 リソースがジェネレータテストに合格すると、ロボットは検索エンジンデータベースに格納されているリソース記述を生成します。

図 9-1    ロボットの動作の仕組み
この図は、ロボットの動作の仕組みを示しています。プロセスの詳細については、図の下の説明を参照してください。

ロボット設定ファイル

ロボット設定ファイルでは、検索エンジンロボットの動作が定義されます。 これらのファイルは、/var/opt/SUNWps/http-hostname-domain/portal/config ディレクトリにあります。表 9-1では、各ロボット構成ファイルを説明しています。 この表は 2 つの列で構成されています。 最初の列には設定ファイルを、2 番目の列にはファイルの内容の説明を示しています。

表 9-1    ロボット構成ファイル

ロボット構成ファイル

説明

classification.conf

ロボットが生成する RD の分類に使用される規則を含む

filter.conf

検索エンジンロボットで列挙および生成の際に利用できるすべてのフィルタを含む。 列挙フィルタ、生成フィルタのいずれにも同じフィルタ規則が含まれるので、両タイプのフィルタに共通の規則変更ができる

参照により、このファイルには、filterrules.conf に格納されるフィルタリング規則も含まれる

filterrules.conf

開始ポイント (シード URL とも呼ばれる) およびフィルタリング規則を含む

robot.conf

ロボットのオペレーティングパラメータのほとんどが定義される。 さらに、このファイルはロボットに filter.conf ファイル中の使用すべき適切なフィルタを指示する



検索サービスは、この他にconvert.conf import.conf の 2 つの設定ファイルを使用します。 これらのファイルは検索サーバーにより生成され、一般に手動で編集できません。



検索エンジン管理インターフェイスを使用すれば、ほとんどのパラメータを設定できるので、通常は robot.conf ファイルを編集する必要はありません。

ただし、上級ユーザーはこのファイルを手動で編集して、インターフェイスを介して設定できないパラメータを設定できます。

ロボットプロセスパラメータの設定

robot.conf ファイルでは、ロボットに filter.conf 中の使用するフィルタを指示する、ロボット用の多くのオプションが定義されます (旧バージョンとの下位互換性については、robot.conf にシード URL を含めることもできます) 。

iPlanet Directory Server Access Management Edition 管理コンソールは、ファイル robot.conf の編集に使用されます。 手動で編集できるパラメータついては、「ユーザが変更できるパラメータ」の節で詳細に説明します。

もっとも重要なパラメータは、enumeration-filter および generation-filter で、これらのパラメータは、ロボットが列挙および生成で使用するフィルタを指定します。 これらのパラメータのデフォルト値は、enumeration-default および generation-default です。これらは、filter.conf ファイルにおいてデフォルトで提供されるフィルタ名です。

フィルタはすべて filter.conf ファイルで定義される必要があります。 filter.conf で独自のフィルタを定義する場合、必要なパラメータを robot.conf に追加する必要があります。

たとえば、my-enumerator という名前の新しい列挙フィルタを定義する場合、robot.conf に次のパラメータを追加します。

enumeration-filter=my-enumerator

フィルタリング処理

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

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

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

リソースが許可される場合は、フィルタ通過の続行が許可されることを表します。 リソースが否認される場合、そのリソースは拒否されます。 拒否されたリソースのフィルタは、それ以上動作しません。 リソースが拒否されない場合、ロボットは最後にそのリソースを列挙し、リソースの検出をさらに試みます。 ジェネレータはリソース記述も作成できます。

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

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

フィルタ処理の段階

列挙フィルタ、生成フィルタのどちらにも、フィルタリング処理における 5 つのフェーズがあります。 どちらのフィルタにも共通の 4 つのセットアップ初期化操作を実行します。 ロボットの生存期間において一度だけ発生します。メタデータ−そのリソースについて利用可能なメタデータに基づき、リソースをフィルタリングします。 リソースがネットワークを介して取得される前に、メタデータのフィルタリングがリソースごとに 1 回実行されます。表 9-2 に、共通のメタデータのタイプの例を一覧表示します。 この表には、メタデータのタイプ、およびその説明と例を示しています。データ−そのデータに基づいてリソースをフィルタリングします。 データのフィルタリングは、ネットワークを介して取得されたあとにリソースごとに 1 回実行されます。 フィルタリングに使用できるデータには、次のものがあります。および シャットダウン−必要な終了操作を実行します。 ロボットの生存期間において一度だけ発生します。リソースがデータフェーズを通過する場合、フィルタが列挙子あるいはジェネレータであるかどうかによって、そのリソースは 列挙−検査すべきほかのリソースを参照するかどうかを判断するため、現行のリソース中の参照を列挙します。 リソースのリソース記述 (RD) を生成し、検索エンジンデータベースにその RD を保存します。 これらのフェーズは次のとおりです。

  • セットアップ初期化操作を実行します。 ロボットの生存期間において一度だけ発生します。
  • メタデータ−そのリソースについて利用可能なメタデータに基づき、リソースをフィルタリングします。 リソースがネットワークを介して取得される前に、メタデータのフィルタリングがリソースごとに 1 回実行されます。表 9-2 に、共通のメタデータのタイプの例を一覧表示します。 この表には、メタデータのタイプ、およびその説明と例を示しています。

    表 9-2    共通のメタデータタイプ

    メタデータ

    説明

    完全な 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> によって示されます。

コード例 9-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>

">

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

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

  • セットアップ
  • メタデータ
  • データ
  • 列挙
  • 生成
  • シャットダウン

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

ロボットアプリケーションの組み込み関数と独自のロボットアプリケーション関数を書き込む手順については、『Sun ONE Portal Server 6.0 Developerユs Guide』で説明しています。

フィルタの書き込みまたは修正

ほとんどの場合、スクラッチからフィルタを書き込む必要はありません。 管理インタフェースを使用すると、ほとんどのフィルタを作成できます。 修正が必要な場合は、filter.conf ファイルおよび filterrules.conf ファイルを変更することができます。 これらのファイルはディレクトリ /var/opt/SUNWps/http-hostname-domain/portal に存在します。

ただし、さらに複雑なパラメータのセットを作成する場合、ロボットが使用する構成ファイルを編集する必要があります。

フィルタの書き込みあるいは変更の際は、次の点に注意してください。

  • ディレクティブの実行順序 (特に各フェーズで使用可能な情報)
  • 規則の順序

robot.conf ファイルで変更できるパラメータ、filter.conf ファイルで使用できるロボットアプリケーション関数、および独自のロボットアプリケーション関数の作成方法については、『Sun ONE Portal Server 6.0 Developerユs Guide』を参照してください。

ユーザが変更できるパラメータ

robot.conf ファイルは、ロボットを filter.conf にある適切なフィルタに向けるなどの、ロボット用の多くのオプションを定義します。 旧バージョンとの下位互換性のために、robot.conf にシード URL を含めることもできます。

管理コンソールを使用すれば、ほとんどのパラメータを設定できるので、通常は robot.conf ファイルを編集する必要はありません。 ただし、上級ユーザーはこのファイルを手動で編集して、管理コンソールを介して設定できないパラメータを設定できます。 このファイルの例については、「サンプルの robot.conf ファイル」を参照してください。

表 9-3に、robot.conf ファイルでユーザーが修正可能なパラメータを示します。パラメータ、その説明および列には例を示しています。

表 9-3    ユーザーが変更できるパラメータ 

パラメータ

説明

auto-proxy

ロボットのプロキシ設定を指定します。 これはプロキシを自動的に設定するプロキシサーバーまたは Java スクリプトファイルになります。 詳細については、『Sun ONE Portal Server 6.0 Administratorユs Guide』を参照してください。

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

bindir

ロボットがバインドディレクトリを PATH 環境に追加するかどうかを指定します。 これは cmd-hook パラメータが指定するプログラムなどの、ユーザーがロボットで外部プログラムを実行するための特別な PATH です。

bindir=path

cmd-hook

ロボットが 1 回の実行を完了すると実行される外部完了スクリプトを指定します。 これはコマンド名へのフルパスにする必要があります。 ロボットは /var/opt/SUNWps/ ディレクトリからこのスクリプトを実行します。

デフォルトはありません。

コマンドを実行するには、最低 1 つ のRD を登録する必要があります。

完了スクリプトの書き込みについては、『Sun ONE Portal Server 6.0 Developerユs Guide』 を参照してください。

cmd-hook=モcommand-stringモ

デフォルトはありません。

command-port

管理インターフェイスまたはロボットコントロールパネルなど、他のプログラムからのコマンドを受け入れるためにロボットが待機するソケットを指定します。

セキュリティ上の理由から、remote-accessyes に設定されていない場合、ロボットはローカルホストからのコマンドだけを受け入れます。

command-port=port_number

connect-timeout

ネットワークが接続要求に応答する最大許容時間を指定します。

デフォルトは 120 秒です。

command-timeout=seconds

convert-timeout

ドキュメント変換に許可される最大時間を指定します。

デフォルトは 600 秒です。

convert-timeout=seconds

depth

ロボットが調べるシード URL (開始ポイントとも呼ばれる) からのリンク数を指定します。 このパラメータは、深さを指定しないシード URL のデフォルト値を設定します。

デフォルトは 10 です。

マイナス 1 の値 (depth=-1) は、リンクの深さが無限であることを表しています。

depth=integer

email

ロボットを実行するユーザーの電子メールアドレスを指定します。

電子メールアドレスは HTTP 要求ヘッダーで user-agent とともに送信されるため、Web マネージャはサイトでロボットを実行するユーザーと通信できます。

デフォルトは user@domain です。

email=user@hostname

enable-ip

作成する各 RD の URL に IP アドレスを生成します。

デフォルトは true です。

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

enable-rdm-probe

サーバーが RDM をサポートするかどうかを確認し、ロボットはこのパラメータを使用して、検出する各サーバーに問い合わせるかどうかを決定します。 サーバーが RDM をサポートする場合は、サーバーは独自のリソース記述サーバーの役割を果たすことができるため、ロボットはこのサーバーのリソースを列挙しません。

デフォルトは false です。

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

enable-robots-txt

ロボットがアクセスする各サイトで、robots.txt ファイルが使用できる場合、このファイルをロボットが検査する必要があるかどうかを指定します。

デフォルトは yes です。

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

engine-concurrent

ロボットが使用する事前作成のスレッド数を指定します。

デフォルトは 10 です。

このパラメータは、管理コンソールから対話形式で設定することはできません。

engine-concurrent=[1..100]

enumeration-filter

リソースを列挙すべきかどうかを確認する場合にロボットが使用する列挙フィルタを指定します。 値は filter.conf ファイルで定義されるフィルタ名にする必要があります。

デフォルトは enumeration-default です。

このパラメータは、管理コンソールから対話形式で設定することはできません。

enumeration-filter=enumfiltername

generation-filter

リソース用にリソース記述を生成する必要があるかどうかを確認する場合に、ロボットが使用する生成フィルタを指定します。 値は filter.conf ファイルで定義されるフィルタ名にする必要があります。

デフォルトは generation-default です。

このパラメータは、管理コンソールから対話形式で設定することはできません。

generation-filter=genfiltername

index-after-ngenerated

検索エンジンにバッチ処理する前にロボットが RD を収集する時間を分で指定します。

このパラメータを指定しない場合、256 分に設定されます。

index-after-ngenerated=30

loglevel

ロギングのレベルを指定します。 loglevel の値は次のように指定されます。

  • レベル 0: 重大なエラー以外は記録しない
  • レベル 1: RD 生成も記録する (デフォルト)
  • レベル 2: 検索活動も記録する
  • レベル 3: フィルタリング活動も記録する
  • レベル 4: 生成活動も記録する
  • レベル 5: 検索の進行状況も記録する

デフォルト値は 1 です。

loglevel=[0...100]

max-connections

ロボットが行う並行検索の最大数を指定します。

デフォルトは 8 です。

max-connections=[1..100]

max-filesize-kb

ロボットが検索するファイルの 最大ファイルサイズをKB 単位で指定します。

max-filesize-kb=1024

max-memory-per-url / max-memory

各 URL が使用するバイト単位の最大メモリを指定します。 URL がより多くのメモリを必要とする場合、RD はディスクに保存されます。

デフォルトは 1 です。

このパラメータは、管理コンソールから対話形式で設定することはできません。

max-memory-per-url=n_bytes

max-working

ロボット稼動セットのサイズ、すなわちロボットが一度に処理できる URL の最大数を指定します。

このパラメータは、管理コンソールから対話形式で設定することはできません。

max-working=1024

onCompletion

実行完了後のロボットの動作を決定します。 ロボットはアイドルモードになるか、ループバック、再起動、または終了できます。

デフォルトは idle です。

このパラメータは cmd-hook パラメータとともに動作します。 実行後のロボットは、onCompletion アクションの次に cmd-hook プログラムを実行します。

OnCompletion=[idle | loop | quit]

password

httpd 認証および ftp 接続に使用される password を指定します。

password=string

referer

Web ページにアクセスする際にロボットをリファラとして識別するように設定されている場合、HTTP 要求に送信されたパラメータを指定します。

referer=string

register-user and register-password

検索エンジンデータベースに RD を登録するために使用されるユーザー名を指定します。

このパラメータは、検索エンジン管理インターフェイスから対話形式で設定することはできません。

register-user=string

register-password

検索エンジンデータベースに RD を登録するために使用されるパスワードを指定します。

このパラメータは、管理コンソールから対話形式で設定することはできません。

register-password=string

remote-access

このパラメータは、ロボットがリモートホストからのコマンドを受け入れることができるどうかを指定します。

デフォルトは false です。

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

robot-state-dir

ロボットが状態を保存するディレクトリを指定します。 この作業ディレクトリで、ロボットは収集された RD の数などを記録できます。

robot-state-dir="/var/opt/SUNWps/ instance/portal/robot"

server-delay

同じ Web サイトに次にアクセスするまでの時間間隔を指定します。この時間を指定することで、ロボットが頻繁に同じサイトにアクセスするのを防止します。

server-delay=delay_in_seconds

site-max-connections

ロボットがサイトに対して行う同時接続の最大数を示します。

デフォルトは 2 です。

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

smart-host-heuristics

ロボットは正規の DNS ホスト名を巡回するサイトを変更できます。 たとえば、www123.siroe.comwww.siroe.com に変更します。

デフォルトは false です。

smart-host-heuristics=[true | false]

tmpdir

ロボットが一時ファイルを作成する場所を指定します。

環境変数 TMPDIR を設定する際にこの変数を使用します。

tmpdir=path

user-agent

http-request の電子メールアドレスとともにサーバーに送信されるパラメータを指定します。

user-agent=iPlanetRobot/4.0

username

ロボットを実行するユーザーのユーザー名を指定し、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/SUNWps/https-budgie.siroe.com/ \
   ps/robot"
   server-delay=1
smart-host-heuristics=true
tmpdir="/var/opt/SUNWps/https-budgie.siroe.com/ps/tmp"
user-agent="iPlanetRobot/4.0"
   username=jack
</Process>


前へ      目次      索引      次へ     
Copyright 2002-2003 Sun Microsystems, Inc. All rights reserved.