ヘッダーをスキップ
Oracle Ultra Search管理者ガイド
11gリリース1(11.1)
E05790-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

7 Oracle Ultra Searchクローラとデータ・ソースについて

この章では、次の項目について説明します。

Oracle Ultra Searchクローラの概要

Oracle Ultra Searchクローラは、設定されたスケジュールに従い、Oracleサーバーによってアクティブ化されるJavaプロセスです。クローラはアクティブになると、様々なデータ・ソースからドキュメントをフェッチするプロセッサ・スレッドを起動します。このドキュメントは、ローカル・ファイル・システムにキャッシュされます。キャッシュが一杯の場合、クローラはOracle Textを使用してキャッシュされたファイルに索引を付け、この索引は問合せに使用されます。


注意:

Oracle Ultra Searchインスタンスの作成時に、空の索引が作成されます。索引がSQLを使用して変更できます。既存の索引設定(言語固有のパラメータなど)は、$ORACLE_HOME/ultrasearch/admin/wk0pref.sqlファイルに定義されています。

クローラ設定

クローラを使用する前に、クローラ・スレッド数、クローラ・タイムアウトしきい値、データベース接続文字列、デフォルト・キャラクタ・セットなどの操作パラメータを設定します。これには、管理ツールの「クローラ」タブを使用します。

インストール時に、Oracle Installerにより、この変数に$ORACLE_HOME/ctx/libが含まれるよう自動的に設定されます。ただし、インストール後にデータベースを再起動する場合は、Oracleプロセスを開始する前に、共有ライブラリ・パス環境変数に$ORACLE_HOME/ctx/libが含まれるよう、手動で設定する必要があります。フィルタ処理を機能させるには、データベースを再起動して新しい値を選択する必要があります。

たとえば、UNIXでは$LD_LIBRARY_PATH環境変数に$ORACLE_HOME/ctx/libが含まれるよう設定し、Windowsでは$PATH環境変数に$ORACLE_HOME\binが含まれるよう設定します。


関連項目:

クローラ設定の詳細は「「クローラ」タブ」を、ロボット除外、動的Webページの索引付け、Urlリライタ、HTTP Cookieなどの設定の詳細は「Webソース」を参照してください。

クローラ・データ・ソース

管理ツールの「ソース」タブでは、Webアクセス・パラメータ以外に、特定のデータ・ソースも定義できます。次に示す1つ以上のデータ・ソースを定義できます。

クローラ・エージェントの使用

ユーザー定義データ・ソースを定義して、独自のドキュメント・リポジトリまたは管理システム(Lotus NotesやDocumentumなど)をクロールして索引付けする場合は、クローラ・エージェントをJavaクラスとして実装する必要があります。エージェントは、独自のドキュメント・ソースからドキュメントURLおよび関連付けられたメタデータを収集し、Oracle Ultra Searchクローラに情報を戻します。Oracle Ultra Searchクローラでは、後でクロールするためにその情報をエンキューします。新規データ・ソース・タイプの定義の詳細は、管理ツールの「ソース」タブの「ユーザー定義」サブタブを参照してください。

データ・ソースの同期

1つ以上のデータ・ソースが連結された同期スケジュールを作成できます。同期スケジュールは、Oracle Ultra Searchの索引を、関連付けられているデータ・ソースの最新情報で更新する頻度を定義します。同期スケジュールを定義するには、管理ツールの「ソース」タブを使用します。

表示URLとアクセスURL

一部のアプリケーションについては、セキュリティ上の理由から、クロールされるURLとエンド・ユーザーが参照するURLが異なる場合があります。たとえば、ファイアウォール内にある内部Webサイトでのクロールはセキュリティ・チェックなしで行われますが、ユーザーによる問合せがあると、ファイアウォール外の対応するミラーURLを使用する必要があります。このミラーURLは、表示URLと呼ばれます。

別のアクセスURLが提供されないかぎり、デフォルトでは、表示URLがアクセスURLとして処理されます。表示URLはデータ・ソース内で一意である必要があり、2つの異なるアクセスURLを同一の表示URLにすることはできません。

ドキュメント属性

ドキュメント属性(メタデータ)は、ドキュメントのプロパティを示します。各データ・ソースには、ドキュメント属性の独自のセットがあります。値はクロール・プロセス中に取り出され、検索属性の1つにマップされた後、データベースに格納され、索引付けされます。この結果、その属性に基づいてドキュメントを問い合せることができます。異なるデータ・ソースのドキュメント属性を1つの検索属性にマップできます。したがって、複数のデータ・ソースのドキュメントを同じ検索属性に基づいて問い合せることができます。

ドキュメントがWebページの場合、属性はHTTPヘッダーから取得されるか、メタ・タグのHTML内に格納されています。ドキュメント属性は、ドキュメント管理、アクセス制御、バージョン管理などに使用できます。異なるデータ・ソースに、同じ目的で使用される別の属性名を付けることができます。たとえば、versionとrevisionです。また、異なる目的で使用される場合に、同じ属性名を付けることもできます。たとえば、languageという属性名は、あるデータ・ソースでは使用言語として使用され、別のデータ・ソースではプログラミング言語として使用されます。

Oracle Ultra Searchには、デフォルト検索属性(Title、Author、Description、Subject、Mimetype、Language、HostおよびLastModifedDate)があります。これらの属性を検索アプリケーションに組み込むことにより、さらに詳細な検索と検索結果の表示が可能になります。

検索属性は、次の方法で作成することもできます。


注意:

デフォルトの検索属性は、決して削除しないでください。

検索属性の値リスト(LOV)は、検索の問合せを指定する際に有効です。属性のLOVが使用可能な場合、クローラは、属性値、属性値の表示名およびその変換を含むLOV定義を登録します。


注意:

Description検索属性は、ファイルのボディ・テキストから導出されません。そのため、WK$URL.DESCRIPTION列には、説明用に明示的に設定されたメタ・タグがある場合にのみ、値が移入されます。ボディ・テキストからファイルの説明を判別するためにクローラが必要な場合は、パラメータUSE_DESC_FALLBACKcrawler.datファイルに追加してください。このパラメータは、IMPORT -文の前に挿入する必要があります。

スケジュールのクロール・プロセス

クローラを最初に実行する場合は、データ・ソースに基づいてWebページ、表の行、ファイルなどをフェッチする必要があります。次に、Oracle Ultra Searchの索引にドキュメントを追加します。スケジュールのクロール・プロセスは、次の2つの段階に分けられます。

  1. ドキュメントのキューイングおよびキャッシュ

  2. ドキュメントの索引付け

ドキュメントのキューイングおよびキャッシュ

図7-1および図7-2では、9つの手順でクロール・サイクルのインスタンスを示しています。この例ではWebデータ・ソースを使用していますが、クローラでは他のデータ・ソース・タイプをクロールすることもできます。

図7-1では、クローラおよびクロール・スレッドをアクティブにする方法を示しています。また、クローラ・キューのハイパーテキスト・リンクがナビゲーションを制御する方法も示しています。この図は、手順1から5に対応します。

図7-2では、クローラがWebページをキャッシュする方法を示しています。この図は、手順6から8に対応します。

手順は、次のとおりです。

  1. Oracleは、管理ツールで指定したスケジュールに従って、クローラを起動します。クロールを最初に初期化する場合、URLキューにはシードURLが移入されます。図7-1を参照してください。

  2. クローラはマルチ・クロール・スレッドを初期化します。

  3. クローラ・スレッドは、キュー内の次のURLを削除します。

  4. クローラ・スレッドは、Webからドキュメントをフェッチします。通常、ドキュメントは、テキストおよびハイパーテキスト・リンクを含むHTMLファイルです。

  5. クローラ・スレッドは、ハイパーテキスト・リンクのHTMLファイルをスキャンし、URLキューに新しいリンクを挿入します。ドキュメント表で重複しているリンクは、廃棄されます。

  6. クローラは、ローカル・ファイル・システムのHTMLファイルをキャッシュします。図7-2を参照してください。

  7. クローラは、ドキュメント表にURLを登録します。

  8. クローラ・スレッドは、手順3から繰り返します。

ネットワークの通信量または低速なWebサイトが原因で、手順4に示したドキュメントのフェッチに時間がかかる場合があります。最大スループットの場合、マルチ・スレッドは、指定された時間にページをフェッチします。


注意:

URLは、次のクロールが実行されるまで表示されています。URLがすでに存在しないことがクローラで検出されると、Oracle Textがこのドキュメントを削除対象として自動的にマークしているWK$DOC表から、そのURLが削除されます(索引データが存在している場合でも削除されます)。索引最適化の実行時にはクリーンアップが実行されます。索引最適化は個別にスケジュールできます。

図7-1 URLのキューイング

図7-1の説明が続きます
「図7-1 URLのキューイング」の説明

図 7-2 URLのキャッシュ

図7-2の説明が続きます
「図7-2 URLのキャッシュ」の説明

ドキュメントの索引付け

ファイル・システムのキャッシュが一杯(最大サイズのデフォルトは20MB)になると、ドキュメントのキャッシュは停止し、索引付けが始まります。この段階で、図7-3に示すように、ドキュメント表が参照するキャッシュ済ファイルにより、Oracle Text索引が補強されます。

図7-3 ドキュメントの索引付け

図7-3の説明が続きます
「図7-3 ドキュメントの索引付け」の説明

データ同期

URLページが最後のクロール以降に変更された場合、URLページはクロールおよび索引付けされます。クローラは、HTTPのIf-Modified-Sinceヘッダー・フィールドまたはページのチェックサムを使用して、URLページが変更されたかどうかを判断します。すでに存在しないURLはマークされ、索引から削除されます。

変更されたドキュメントを更新するために、クローラは内部のチェックサムを使用して、新しいWebページをキャッシュ済Webページと比較します。変更されたWebページはキャッシュされ、再度索引付けするためにマークされます。

データ同期の手順は、次のとおりです。

  1. Oracleは、管理ツールで指定した同期スケジュールに従って、クローラを起動します。URLキューには、スケジュールに割り当てられたデータ・ソースのURLが移入されます。

  2. クローラはマルチ・クロール・スレッドを初期化します。

  3. 各クローラ・スレッドは、キュー内の次のURLを削除します。

  4. 各クローラ・スレッドは、Webからドキュメントをフェッチします。通常、ページは、テキストおよびハイパーテキスト・リンクを含むHTMLファイルです。

  5. 各クローラ・スレッドは、新しく取得されたページのチェックサムを計算し、キャッシュ・ページのチェックサムと比較します。チェックサムが同じ場合は、ページが廃棄されクローラは手順3に戻ります。それ以外の場合は、次の手順に進みます。

  6. 各クローラ・スレッドは、ハイパーテキスト・リンクのドキュメントをスキャンし、URLキューに新しいリンクを挿入します。ドキュメント表にすでにあるリンクは、廃棄されます。

  7. クローラは、図7-2に示すように、ローカル・ファイル・システムのドキュメントをキャッシュします。

  8. クローラは、ドキュメント表にURLを登録します。

  9. ファイル・システムのキャッシュがフルになる、またはURLキューが空になると、Webページのキャッシュは停止し、索引付けが始まります。それ以外の場合、クローラ・スレッドは、手順3から繰り返します。

Webクロール境界の制御

Oracle Ultra Searchには、Webデータ・ソース・クロールの範囲を制御するための次のメカニズムがあります。

URL境界ルール

URL境界ルールは、ドメイン・ルールとパス・ルールから構成されます。ドメイン・ルールは、許可されるWebサイトをホスト名の接頭辞または接尾辞を使用して指定します。パス・ルールは、特定のホストに対してURLファイル・バスがアクセス可能かどうかを指定します。ドメイン・ルールとパス・ルールの両方に包含ルールまたは除外ルールを指定できます。除外ルールは常に包含ルールをオーバーライドします。パス・ルールは常にホストに固有のルールです。

たとえば、包含ドメインの末尾がoracle.comの場合、Oracle Ultra Searchクローラは全世界のオラクル社に属するホストのみをクロールするように制限されます。末尾がoracle.comのものはすべてクロールされますが、http://www.oracle.com.twはクロールされません。新しいシードhttp://www.someurl.comを使用して包含ドメインをsomeurl.comに変更すると、すべてのoracle.com URLがクローラによって削除されます。

除外ドメインがuk.oracle.comの場合、クローラはイギリスにあるOracleホストをクロールしません。特定のポートを使用して、Webサイトを包含または除外することもできます(デフォルトでは、すべてのポートがクロールされます)。特定のホストに対し、ポート包含ルールまたはポート除外ルールを指定できますが、両方は使用できません。

すべてのURLは、パス・ルールをチェックする前に、ドメイン・ルールを通過する必要があります。パス・ルールを使用すると、クロール領域をさらに制限できます。パス・ルールはホストに固有ですが、ホストごとに2つ以上のパス・ルールを指定できます。たとえば、同じホスト上に包含パス/host/docと除外パス/host/doc/privateを含めることができます。パス・ルールは接頭辞ベースであることに注意してください。

現在のリリースでは、正規表現ベースのドメインおよびパス・ルールはサポートされません。

次のルールは、クローラをwww.oracle.comおよびotn.oracle.comのみクロールするように制限します。また、/products/database/および/products/ias/の下のURLのみクロールされ、/products/ias/web_cache/の下のURLはクロールされません。

Domain inclusion: www.oracle.com
Domain inclusion: otn.oracle.com
Path inclusion for otn.oracle.com:         /products/database/
                                           /products/ias/
Path exclusion for otn.oracle.com:         /products/ias/web_cache/

robots.txtプロトコルとロボット・メタ・タグ

robots.txtプロトコルは、Web管理者自身のWebサイトにアクセスするスパイダやクローラに対するWeb管理者のパス・ルールです。

次のサンプル/robots.txtファイルでは、どのロボットも先頭が/cyberworld/map//tmp/または/foo.htmlのURLにはアクセスしないように指定されています。

# robots.txt for http://www.acme.com/

User-agent: *
Disallow: /cyberworld/map/
Disallow: /tmp/
Disallow: /foo.html

デフォルトでは、Oracle Ultra Searchクローラはrobots.txtプロトコルに従いますが、ユーザーがオーバーライドすることもできます。Webサイトがユーザーの制御下にある場合、User-agent: Ultra Searchという名前のOracle Ultra Searchクローラ・エージェントを指定して、特定のロボット・ルールをクローラに合せて調整できます。次に例を示します。

User-agent: Ultra Search

Disallow: /tmp/

ロボットMETAタグは、Webページに索引を付けるか、またはその中のリンクをたどるかをクローラに指示できます。

クロールの深さ

クロールの深さは、指定されたシードURLで始まるリンクをクローラがどの深さまでたどるかを制御します。クロールはマルチ・スレッドなので、常に同じ結果を戻す制御ではなく、特定のページまでは様々なルートがある場合があります。

クロールの深さの制限は、指定されたWebデータ・ソース内のすべてのWebサイトに適用されます。

URLリライタ

URLリライタAPIは、リンクのフィルタ処理およびリライトを実行するためにJavaクラスとして実装します。クロールされたWebページ内で抽出されたリンクは、チェックするためにこのモジュールに渡されます。これにより、Webページから抽出されたどのリンクが許可され、どのリンクが破棄されるのかを最終制御できます。

URLリダイレクションと境界ルールの規定

以前のリリースのOracle Ultra Search(9.0.2、9.0.3、9.0.4)では、リダイレクトされたURLにも同じ境界チェックが適用されていました。このため、境界ルールの外側にあると、リダイレクトされたURLが拒否されます。リダイレクトされたURLをクロールするためには、境界ルールの範囲にあるようにする必要があります。

9.2.0.5のOracle Application Server 10gおよびOracle Database 11gでは、一時的なリダイレクション(HTTPステータス302、307)の場合、リダイレクトされたURLは常に許可されます。恒久的なリダイレクション(ステータス301)の場合は、リダイレクトされたURLは以前と同様に境界ルールの影響を受けます。

HTTPメタ・タグ・リダイレクションは、常に境界ルールでチェックされます。

Oracle Ultra Searchのリモート・クローラ

クロールのパフォーマンスを向上させるには、データベースとは別の1つ以上のコンピュータ上でOracle Ultra Searchクローラを設定します。これらのコンピュータは、リモート・クローラと呼ばれます。ただし、各コンピュータは、データベース・コンピュータとログおよびメール・アーカイブ・ディレクトリを共有します。

リモート・クローラを構成するには、データベース・ホスト以外のコンピュータに、Oracle Ultra Search中間層を最初にインストールする必要があります。インストール中、リモート・クローラはOracle Ultra Searchシステムに登録され、リモート・クローラ用のプロファイルが作成されます。Oracle Ultra Search中間層のインストール後、Oracle Ultra Search管理ツールにログオンし、リモート・クローラ・プロファイルを編集する必要があります。これによって、クロール・スケジュールへのリモート・クローラの割当てが可能になります。リモート・クローラ・プロファイルを編集するには、管理ツールの「クローラ」タブを使用します。

Oracle Ultra Searchクローラのステータス・コード

クローラは、一連のコードを使用してクロールしたURLのクロール結果を示します。標準のHTTPステータス・コードに加え、HTTP以外の場合には独自のコードを使用します。ステータスが200のURLのみ索引付けされます。