Sun ONE Portal Server 6.2 管理者ガイド |
第 9 章
検索エンジンロボットの管理この章では、SunTM 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 番目の列はファイルの内容の説明を示します。
注
検索サービスは、この他にconvert.conf と import.conf の 2 つの設 定ファイルを使用します。これらのファイルは検索サーバーにより生成さ れ、一般に手動では編集できません。
検索エンジン管理インタフェースを使用すれば、ほとんどのパラメータを設定できるので、通常は robot.conf ファイルを編集する必要はありません。
ただし、上級ユーザーはこのファイルを手動で編集することにより、インタフェースを介してでは設定できないパラメータを設定することができます。
ロボットプロセスパラメータの設定robot.conf ファイルでは、ロボットが filter.conf 内で使用するフィルタを指示するオプションなど、ロボット用の多くのオプションが定義されます (旧バージョンとの下位互換性のために、robot.conf にシード URL を含めることもできます)。
Sun ONE Identity Server 管理コンソールを使用して、ファイル 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 つのフェーズがあります。どちらのフィルタにも、セットアップ : 初期化処理を行う。ロボットの生存期間において一度だけ発生する。、メタデータ : そのリソースについて利用可能なメタデータに基づき、リソースをフィルタリングする。リソースがネットワークを介して取得される前に、メタデータのフィルタリングがリソースごとに一回実行される。表 9-2 は、共通のメタデータタイプの例を示している。この表では列が 3 つある。最初の列はメタデータのタイプ、2 番目の列は説明、3 番目の列は例を示す。、データ : リソースのデータに基づいてリソースをフィルタリングする。データのフィルタリングは、ネットワークを介して取得されたあとにリソースごとに 1 回実行される。フィルタリングに使用できるデータには、次のものがある、およびシャットダウン : 必要な終了操作を実行する。ロボットの生存期間において一度だけ発生するの共通する 4 つのフェーズがあります。リソースがデータフェーズを通過する場合、フィルタが列挙あるいはジェネレータであるかどうかによって、そのリソースは列挙 : 検査すべきほかのリソースを参照するかどうかを判断するため、現行のリソース中の参照を列挙する。フェーズまたは生成 : リソースのリソース記述 (RD) を生成し、検索エンジンデータベースにその RD を保存する。フェーズのどちらかにあります。
これらのフェーズは次のとおりです。
- セットアップ : 初期化処理を行う。ロボットの生存期間において一度だけ発生する。
- メタデータ : そのリソースについて利用可能なメタデータに基づき、リソースをフィルタリングする。リソースがネットワークを介して取得される前に、メタデータのフィルタリングがリソースごとに一回実行される。表 9-2 は、共通のメタデータタイプの例を示している。この表では列が 3 つある。最初の列はメタデータのタイプ、2 番目の列は説明、3 番目の列は例を示す。
- データ : リソースのデータに基づいてリソースをフィルタリングする。データのフィルタリングは、ネットワークを介して取得されたあとにリソースごとに 1 回実行される。フィルタリングに使用できるデータには、次のものがある
- 列挙 : 検査すべきほかのリソースを参照するかどうかを判断するため、現行のリソース中の参照を列挙する。
- 生成 : リソースのリソース記述 (RD) を生成し、検索エンジンデータベースにその RD を保存する。
- シャットダウン : 必要な終了操作を実行する。ロボットの生存期間において一度だけ発生する
フィルタの構文
filter.conf ファイルには、列挙フィルタおよび生成フィルタの定義が含まれています。このファイルには、列挙と生成の両方について、複数のフィルタを含むことができます。robot.conf ファイルの enumeration-filter パラメータおよび generation-filter パラメータでフィルタを指定するため、使用するフィルタをロボットが判断できます。
フィルタの定義は、ヘッダー、本文、終了という明確に定義された構造になります。ヘッダーは、フィルタの開始を識別し、たとえば次のように名前を宣言します。
<Filter name="myFilter">
本文は、セットアップ、テスト、列挙または生成、およびシャットダウン中のフィルタの動作を定義する一連のフィルタディレクティブで構成されています。各ディレクティブでは、関数とその関数のパラメータ (該当する場合) を指定します。
終了は </Filter> によって示されます。
コード例 9-1 は、enumeration1 という名のフィルタを示しています。
コード例 9-1 列挙ファイルの構文
フィルタディレクティブ
フィルタディレクティブは、ロボットアプリケーション関数 (RAF) を使用して、操作を実行します。このディレクティブの使用法および実行の流れは、obj.conf ファイルの NSAPI ディレクティブおよびサーバーアプリケーション関数 (SAF) とよく似ています。NSAPI、SAF と同様に、pblocks とも呼ばれるパラメータブロックを使用して、データは格納および送信されます。
ロボットディレクティブ、または RAF クラスには次の 6 つがあり、「フィルタリング処理」に示されるフィルタリングのフェーズや操作に対応しています。
各ディレクティブは、独自のロボットアプリケーション関数を持っています。たとえば、Metadata ディレクティブおよび Data ディレクティブではフィルタリング関数、Enumerate ディレクティブでは列挙関数、Generate ディレクティブでは生成関数を使用します。
ロボットアプリケーションの組み込み関数と、独自のロボットアプリケーション関数を記述する手順については、『Sun ONE Portal Server 6.1 Developer不 Guide』を参照してください。
フィルタの記述または修正
ほとんどの場合、フィルタを一から記述する必要はありません。管理コンソールを使用すると、ほとんどのフィルタを作成できます。修正が必要な場合は、filter.conf ファイルおよび filterrules.conf ファイルを変更することができます。これらのファイルはディレクトリ /var/opt/SUNWps/http-hostname-domain/portal に存在します。
ただし、より複雑なパラメータのセットを作成する場合、ロボットが使用する設定ファイルを編集する必要があります。
フィルタの記述または変更の際は、次の点に注意してください。
robot.conf ファイルで変更できるパラメータ、filter.conf ファイルで使用できるロボットアプリケーション関数、および独自のロボットアプリケーション関数の作成方法については、『Sun ONE Portal Server 6.1 Developer不 Guide』を参照してください。
ユーザーが変更できるパラメータrobot.conf ファイルは、ロボットを filter.conf にある適切なフィルタに指定するなどの、ロボット用の多くのオプションを定義します。旧バージョンとの下位互換性のために、robot.conf にシード URL を含めることもできます。
管理コンソールを使用すれば、ほとんどのパラメータを設定できるので、通常は robot.conf ファイルを編集する必要はありません。ただし、上級ユーザーはこのファイルを手動で編集して、管理コンソールからは設定できないパラメータを設定できます。このファイルの例については、「robot.conf ファイルの例」を参照してください。
表 9-3 は、robot.conf ファイルでユーザーが変更可能なパラメータを示しています。このテーブルの最初の列はパラメータ、2 番目の列はパラメータの説明、3 番目の列は例を示します。
表 9-3 ユーザーが変更できるパラメータ
パラメータ
説明
例
auto-proxy
ロボットのプロキシ設定を指定す る。これは、プロキシサーバー、 またはプロキシを自動的に設定す る Java スクリプトファイルであ る。詳細については、『Sun ONE Portal Server 6.2 管理者ガイド』 を参照。
auto-proxy="http://proxy_server/p roxy.pac"
bindir
ロボットがバインドディレクトリ を PATH 環境に追加するかどうか を指定する。これは cmd-hook パラメータが指定するプログラム など、ユーザーがロボットで外部 プログラムを実行するための特別 な PATH である
bindir=path
cmd-hook
ロボットが実行を完了するたびに 実行される外部完了スクリプトを 指定する。これは、コマンド名の 完全パスで指定する必要がある。 ロボットは /var/opt/SUNWps/ ディレクトリからこのスクリプト を実行する。
デフォルトはない。
コマンドを実行するには、最低 1 つの RD が登録されている必要が ある。
完了スクリプトの記述について は、『Sun ONE Portal Server 6.1 Developer不 Guide』を参照
cmd-hook="command-string"
デフォルトはない。
command-port
管理インタフェースまたはロボッ トコントロールパネルのような他 のプログラムからコマンドを受け 入れるために、ロボットが待機す るソケットを指定する。
セキュリティ上の理由から、 remote-access が yes に設定 されていない場合、ロボットは ローカルホストからのコマンドだ けを受け入れる。
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
ロボットを実行するユーザーの電 子メールアドレスを指定する。
Web 管理者とサイトでロボット を実行するユーザーとが連絡でき るように、電子メールアドレスは HTTP 要求ヘッダーで user-agent とともに送信される
デフォルトは 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 の値は次のように指定 される。
デフォルト値は 1
loglevel=[0...100]
max-connections
ロボットが実行できる並行検索の 最大数を指定する。
デフォルトは 8
max-connections=[1..100]
max-filesize-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
ロボットが任意の 1 つのサイトに 対して行う同時接続の最大数を示 す。
デフォルトは 2。
site-max-connections=[1..100]
smart-host-heuristics
ロボットが正規の DNS ホスト名 を巡回するサイトを変更できる。 たとえば、www123.siroe.com が www.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 は、このファイルを使用する検索エンジンインスタンスを示しています。このパラメータの値は変更しないでください。このファイルのパラメータの定義については、「ユーザーが変更できるパラメータ」を参照してください。
<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>