この章では、次の項目について説明します。
Oracle Ultra Searchは、Oracle DatabaseとOracle Textのテクノロジに基づいて構築され、複数のリポジトリ間(Oracleデータベース、他のODBC準拠のデータベース、IMAPメール・サーバー、Webサーバーで提供するHTMLドキュメント、ディスク上のファイルなど)で統一した検索機能を提供します。
Oracle Ultra Searchでは、クローラを使用してドキュメントを収集します。検索するWebサイトに対してクローラをスケジュールできます。各ドキュメントはそれぞれのリポジトリに格納され、収集した情報を使用して索引が作成されます。索引は、指定したOracleデータベースのファイアウォール内に格納されます。また、Oracle Ultra Searchには、コンテンツ管理ソリューションを構築するためのAPIも用意されています。
さらに、Oracle Ultra Searchによって、次の機能が提供されます。
データベース内でテキストを検索するための完全なテキスト問合せ言語
Oracle DatabaseとSQL問合せ言語との完全な統合
コンセプトの検索やテーマ分析などの拡張機能
異なるリポジトリ間の属性検索を容易にするための属性マッピング
150を超えるファイル形式の索引付け
中国語、日本語、韓国語(CJK)およびUnicodeのサポートを含む、完全なグローバリゼーション
Oracle Ultra Searchは、次のコンポーネントで構成されています。
Oracle Ultra Searchクローラは、設定されたスケジュールに従い、OracleサーバーによってアクティブにされるJavaプロセスです。アクティブになったクローラは、様々なデータ・ソースからドキュメントをフェッチし、そのドキュメントにOracle Textを使用して索引付けをするプロセッサ・スレッドを、構成可能な数だけ起動します。この索引は、問合せに使用されます。データ・ソースには、Webサイト、データベース表、ファイル、メーリング・リスト、Oracle Application Server Portalのページ・グループ、ユーザー定義のデータ・ソースなどが含まれます。
クローラは、リンクをマップして関連を分析します。クローラ・スケジュールは、DBMS_JOB
のキュー・メカニズムと統合され、このメカニズムによって起動されます。クローラは、クロール時にHTML以外の埋込みドキュメントを検出すると、Oracle Textのフィルタ機能を使用してドキュメント・タイプを自動的に検出し、ドキュメントをフィルタ処理して索引を付けます。
Oracle Ultra Searchのバックエンドは、Oracle Ultra SearchのリポジトリとOracle Textで構成されています。Oracle Textは、データ・ソースから取り出したデータの索引付けと問合せに必要な、テキスト索引付けと検索機能を提供します。バックエンドでは、クローラからの情報に索引付けを行い、問合せ結果を提供します。
Oracle Ultra Search中間層コンポーネントはWebアプリケーションです。中間層には、Oracle Ultra Search管理ツール、APIおよび問合せアプリケーションが含まれます。
Oracle Databaseの場合、Oracle Ultra Search中間層とバックエンドを同じOracleホームに格納できます。ただし、OracleASおよびOracle Collaboration Suiteの場合、中間層は異なるOracleホームに配置します。
Oracle Ultra Search管理ツールは、J2EEに準拠したWebアプリケーションです。このツールは、Oracle Ultra Searchインスタンスの管理に使用でき、イントラネットからアクセスできます。管理ツールは、Oracle Ultra Searchの問合せアプリケーションから独立しています。したがって、管理ツールと問合せアプリケーションは、セキュリティやスケーラビリティを強化するために、異なるコンピュータでホスト管理できます。
Oracle Ultra Searchには、次のAPIが用意されています。
Query API。索引付けされたデータで使用します。Java APIは、HTMLレンダリング要素を必要としません。アプリケーションでは、HTMLインタフェースを完全にカスタマイズできます。
Java Email API。アーカイブされた電子メールにアクセスし、電子メールを表示するために問合せアプリケーションで使用されます。このAPIは、独自のカスタム問合せアプリケーションを作成するときにも使用できます。
URLリライタAPI。クローラはこれを使用して、抽出したURLリンクがURLキューに挿入される前にフィルタ処理およびリライトします。
ドキュメント・サービス・クローラ・エージェントAPIを使用すると、ドキュメント・コンテンツに基づいて属性データを生成できます。対象となるドキュメントのエージェントからロボット・メタ・タグの指示を受け取り、索引を制御するために元のドキュメント・コンテンツを変換します。
Oracle Ultra Searchには、検索結果を問い合せて表示するための、高度な機能を備えた問合せアプリケーションが含まれています。問合せアプリケーションはJSPに基づいており、JSP1.1準拠のエンジンで動作します。
Oracle Ultra Search管理ツールおよびOracle Ultra Searchの問合せアプリケーションは、J2EEに準拠したWebアプリケーションです。これらは3層アーキテクチャのアプリケーションです。図1-1に、ブラウザ(第1層)、Webサーバーとサーブレット・エンジン(中間層)およびOracleデータベース(第3層)の関係を示します。
Webサーバーはブラウザからリクエストを受け取り、リクエストをサーブレット・エンジンに転送して処理します。次に、Oracle Ultra Search中間層は図1-1に示すように、JDBCを介してOracle Databaseと通信します。
Oracle Ultra Search管理ツールまたはOracle Ultra Searchの問合せアプリケーションには、すべてのブラウザからアクセスできます。URLについては後述します。
ここでは、Oracle Ultra Searchの機能について説明します。次の項目が含まれます。
Ultra Searchインスタンスは、クロールされたデータ・コレクションを分離するために作成できます。
マスターOracle Ultra Searchインスタンスの読取り専用スナップショットを作成できます。このスナップショットは、検索処理用またはバックアップ用に有効です。スナップショット・インスタンスも、更新可能にできます。これは、マスター・インスタンスが破損し、スナップショットを新しいマスター・インスタンスとして使用する場合に役立ちます。
ドキュメント属性またはメタデータでは、ドキュメントのプロパティを説明しています。各データ・ソースには、ドキュメント属性の独自のセットがあります。クロール・プロセス中に値が取り出され、これが検索属性の1つにマップされます。これはデータベースに格納され、索引付けされます。この結果、その属性に基づいてドキュメントを問い合せることができます。異なるデータ・ソースのドキュメント属性を1つの検索属性にマップできます。したがって、複数のデータ・ソースのドキュメントを同じ検索属性に基づいて問い合せることができます。
Oracle Ultra Searchには、デフォルト検索属性(Title、Author、Description、Subject、Mimetype、Language、HostおよびLastModifedDate)があります。デフォルトの検索属性を検索アプリケーションに組み込むことにより、さらに詳細な検索と検索結果の表示が可能になります。検索属性の値リスト(LOV)は、検索の問合せを指定する際に有効です。属性のLOVが使用可能な場合、クローラは、属性値、属性値の表示名およびその変換を含むLOV定義を登録します。
Oracle Ultra Searchでは、メタデータをOracle Ultra Searchデータベースにロードするためのコマンドライン・ツールが提供されます。大量のデータをロードする必要がある場合は、コマンドラインを使用することで、HTMLベースの管理ツールより速くロードできます。
メタデータ・ローダーはJavaアプリケーションです。このツールを使用するには、メタデータをXMLファイルに配置する必要があります。次のタイプのメタデータがサポートされます。
次の文字列は翻訳して入力できます。
検索属性名
属性LOV
データ・グループ名
連携データ・ソース名
これらの文字列は、検索時に言語設定に従って表示されます。
提供されているものの他に、データ・ソースおよびタイプを定義、編集または削除することができます。クローラ・エージェントを実装して、Lotus NotesやDocumentumなど、それぞれのデータベースとインタフェースを持つ独自のドキュメント・リポジトリを、クロールして索引付けできます。独自のリポジトリを、ユーザー定義データ・ソースと呼びます。クローラによるデータ・ソースへのアクセスを可能にするモジュールをクローラ・エージェントと呼びます。
サイトのどの部分をロボットで参照できるかを決定できます。ロボットの除外が有効(デフォルト)な場合、Webクローラは、Webサーバーのrobots
.txt
ファイルに指定されているアクセス・ポリシーに基づいてページ間を横断します。たとえば、ロボットがhttp
://www
.oracle
.com
/にアクセスする場合、http
://www
.oracle
.com
/robots
.txt
があるかどうかチェックします。このファイルが見つかった場合、クローラはその内容を分析して、ドキュメントを取り出せるかどうかを確認します。Webサイトを所有している場合は、ロボットの除外を無効にすることができます。ただし、他のWebサイトをクロールするときは、ロボットの除外を有効にしてrobots
.txt
に従う必要があります。
最初に、クローラにより、索引付けをせずにURLを収集する場合があります。クロールの完了後、ドキュメントのURLとステータスを調べることができます。次に不要なドキュメントを削除し、索引付けを開始します。クロール・モードを次のように更新できます。
索引付けのためにすべてのURLを実行
索引付けの前にURLを調査
索引付けのみ
Oracle Ultra Searchは、検索機能をユーザーのサイトに取り込むための柔軟なQuery APIを提供します。Query APIには次の機能があります。
3つの属性型: 文字列、数値および日付
複数値属性
ドキュメント検索オプション
演算子(AND
、OR
)を使用した属性問合せ演算子の任意のグループ化(属性演算子の評価順序の制御を伴います)
問合せ結果に戻されるメタデータの選択
Oracle Ultra Searchでは、セキュアな検索をサポートしています。Ultra Searchは、指定した検索基準を満たすドキュメントのみを戻します。セキュアな検索のために、索引付けされた各ドキュメントは、検索中に評価されるアクセス制御リスト(ACL)によって保護されます。API問合せでは、保護されたドキュメントを読み取る権限を持っている場合にのみ、ドキュメントを戻せます。
データ・ソースを保護するには次の2つの方法があります。
データ・ソースの全ドキュメントを保護する単一ACLを指定します。
管理者が、Oracle Ultra Search管理ツールで単一ACLのアクセス権を指定します。結果のACLは、そのデータ・ソースに属する全ドキュメントの保護に使用されます。
データ・ソースからACLをクロールします。
データ・ソースでは、ドキュメントとともにACLが提供されます。これによって、各ドキュメントはそれぞれの一意のACLにより保護されます。
クローラ・エージェントがデータ・ソースからその他のドキュメント属性とともにACLを取得するユーザー定義のデータ・ソース・タイプの場合は、Oracle Ultra Searchではこのモードのみサポートします。Web、表、ポータル、電子メール、ファイル・タイプの場合、データ・ソースからACLを取得することはできません。エージェントAPIを使用すると、URLプロパティUrlData.ACLにより、エージェントは発行されたURLのACLを設定できます。エージェントAPIのAclHelper
クラスは、ACL文字列を生成してACL文字列の形式が正しいことを確認します。識別名(DN)およびグローバル・ユーザーID(GUID)のみ、ACLのプリンシパルとして使用できます。
Oracle Ultra SearchではACL重複検出が実行されます。これは、クロールしたドキュメントのACLがOracle Ultra Searchシステムにすでに存在する場合、Oracle Ultra Search内で新規のACLを作成せずに、既存のACLを使用してドキュメントを保護することを意味します。このポリシーにより、記憶領域が削減され、パフォーマンスが向上します。
Oracle Ultra Searchは、シングルLDAPドメインのみサポートしています。ACLに指定されているLDAPユーザーおよびグループは、同じLDAPドメインに属する必要があります。
注意: データ・ソースからACLをクロールする場合、クロールするデータ・ソースが同じLDAPドメインに属することを管理者が責任を持って確認する必要があります。確認しないと、検索ユーザーがアクセスできないドキュメントへのアクセス権限が誤って付与される可能性があります。 |
セキュアな検索対応のOracle Ultra Searchインスタンスに対して検索が実行される場合、セキュアな検索非対応のインスタンスに対して実行される場合より遅くなります。これは、各候補結果にACL評価が必要となるためです。ACLは元々、パフォーマンスを最大にするためにOracleデータベース・サーバーにより評価されます。ただし、セキュアな検索でヒットを戻すための所要時間は、必要となるACL評価の数に応じて異なります。
Oracle Ultra Searchでは、ACLはOracle XML DBリポジトリに格納されます。また、Oracle Ultra SearchではACLの評価にOracle XML DB機能が使用されます。この依存は、セキュアな検索を使用するユーザーに対してのみ存在します。
ACLはOracle Ultra Searchにより管理されます。ACLは、単一のOracle Ultra Searchインスタンスからドキュメントによって一意に参照され、複数のOracle Ultra Searchインスタンスによって共有されません。許容できるパフォーマンスを得るため、ACLキャッシュ・サイズは、実行時に評価されるすべてのACLに対応できる十分な大きさが必要です。
XML DBリポジトリ内のACLは、他のACL(プロテクタACLと呼ばれる)により保護されます。Oracle Ultra Searchは、Oracle Ultra SearchにXML DBのACL評価機能をコールするための適切な権限がプロテクタACLにより付与されていることを確認します。評価のパフォーマンスは主に、すべてのXML DBクライアント・アプリケーションが使用するACLの総数による影響を受けます。XML DBクライアント・アプリケーションは、ACL評価機能も使用します。この一連のアプリケーションには、Oracle Ultra Searchが含まれます。
Oracle Ultra Searchデータ・ソースは、管理者が指定した単一のACLによって保護できます。このACLは、1つのデータ・ソースに属するドキュメントを表示できるユーザーおよびグループを指定します。
検索ユーザーが問合せを実行すると、Oracle Ultra SearchはOracleサーバーのACL評価エンジンを使用して権限を評価します。このACL評価エンジンは、Oracle XML DBの機能です。Oracle Ultra Searchの問合せが、管理者が指定したACLによって保護されているドキュメントを検索しようとすると、ACLが評価されてキャッシュされます。
ACLのキャッシュに必要な時間は、XML DB構成パラメータによって制御されます。acl-max-age
パラメータは変更する必要があります。値は、ACLのキャッシュにかかる時間を決める秒単位の数値です。
ACLはキャッシュされるので、管理者が指定したACLを変更しても、すぐに反映されないことがあります。このことは、変更が行われる前に存在していたデータベース・セッションのみ当てはまります。
ドキュメント検索オプションによって、検索結果をオーバーライドし、問合せ結果リストにランク付けされているドキュメントの順序を変更できます。この結果、重要なドキュメントを高くスコア付けでき、検索を容易にすることができます。
検索オプションでは、ユーザーが入力した特定の問合せについて、ドキュメントにスコアが割り当てられます。
注意: 検索された問合せのいずれかではない問合せを入力した場合、ドキュメントにはOracle Textにより計算されたスコアが割り当てられたままとなります。 |
検索オプションには次の制限事項があります。
ユーザーの問合せと検索される問合せの比較には、文字列の完全一致が使用されます。完全一致の比較では、大/小文字が区別され、スペースが認識されます。したがって、「ultrasearch」と入力した場合、「Ultra Search」についての検索オプション・スコアが割り当てられたドキュメントは検索されません。
検索オプションでは、問合せアプリケーションにより検索条件がQuery API getResult
メソッド・コールを使用して渡される必要があります。基本検索条件を検索条件として渡すためのアプリケーションが設計されています。検索属性に基づいた拡張検索基準は無視されます。
Oracle Ultra Searchは、各ユーザー問合せをデータベース問合せに変換します。この処理を「問合せ構文拡張」と呼びます。Oracle Ultra Searchのデフォルトの拡張ロジックでは、ユーザーの問合せと一致するドキュメントは、検索結果が高くランク付けされます。問合せ構文拡張は、問合せAPIによってカスタマイズできます。
データベースWebアプリケーションから情報を収集する間、Oracle Ultra Searchでは、URLを指定して、取り出されたデータをブラウザに表示できます。URLは、データベース内のデータに対応するWebアプリケーションの画面を示します。これは、表データ・ソース、ファイル・データ・ソースおよびユーザー定義データ・ソースに使用できます。
Oracle Ultra Searchでは当初、一元化された検索を利用して定期的にデータを収集し、検索可能な全データをカタログに追加した索引を更新していました。これにより、高速検索が可能でしたが、データ・ソースが検索前にクロールできる状態になっている必要がありました。現在、Oracle Ultra Searchではフェデレーテッド検索が用意されており、複数の索引で1つの検索を実行できます。各索引は個別に保持できます。検索時にデータ・ソースを問い合せることで、検索結果は常に最新の結果が得られます。ユーザー資格証明をデータ・ソースに渡し、データ・ソースにより認証できます。問合せは、データの固有の書式を使用して効果的に処理できます。フェデレーテッド検索を使用するには、Oracle Ultra Search検索アダプタ、またはサーチレットをデプロイし、Oracleソースを作成する必要があります。サーチレットは、中間層(OC4J内)にデプロイされるJavaモジュールであり、企業情報システム内のデータを検索します。ユーザーの問合せがサーチレットに委譲された場合、サーチレットはユーザーにかわり問合せを実行します。サーチレットはすべて、JCA 1.0に準拠するリソース・アダプタです。
Oracle Ultra Search管理ツールでは、ユーザーのタイプに応じて、次のログオン・モードをサポートしています。次のユーザーでログオンできます。
Oracle Internet Directoryで管理され、Oracle Application Server Single Sign-Onで認証されたシングル・サインオン・ユーザー
Oracle Ultra Searchデータベースのローカル・データベース・スキーマ・ユーザー(シングル・サインオンを使用しないユーザー)
Portalユーザー
Enterprise Managerユーザー
注意: シングル・サインオンは、Oracle Identity Managementインフラストラクチャでのみ使用可能です。 |
Oracle Internet Directoryは、Oracle固有のLDAPバージョン3準拠のディレクトリ・サービスであり、Oracle Database上にアプリケーションとして構築されています。Oracle Internet Directoryでは、Oracleの共通IDがホスティングされます。OracleのWebベースの製品はすべて、Oracle Application Server Single Sign-Onと統合されています。
Oracle Ultra Search管理グループには、ユーザーのセットが含まれます。各ユーザーは、1つ以上のグループに属することができます。すべてのグループは、groupOfUniqueNames
およびorclGroup
オブジェクト・クラスを使用して作成されます。
ユーザー管理権限を付与する唯一の方法は、この権限を管理グループに割り当てる方法です。Oracle Ultra Searchでは、ユーザーが属する管理グループに基づいてユーザー管理権限が許可されます。Oracle Ultra Searchインスタンスごとに次のグループが作成されます。
スーパーユーザー: このグループのユーザーは、Oracle Ultra Searchインスタンスを作成または削除し、インストール内のOracle Ultra Searchインスタンスを管理できます。スーパーユーザーは、ドキュメント検索オプションのルールと、Oracle Ultra Searchインスタンスに関連付けられた各ドキュメントに定義されているACLに従う必要があります。たとえば、あるドキュメントACLでスーパーユーザーまたはグループにアクセス権限が付与されていない場合、スーパーユーザーはこのドキュメントを検索および表示できません。
インスタンス管理者: このグループのユーザーは、Oracle Ultra Searchインスタンスを管理できます。インスタンスを削除できるのは、インスタンス・データベース・スキーマ・ユーザーおよびスーパーユーザー・グループのメンバーのみです。
管理ユーザーの認可は、次の手順で実行されます。
管理ユーザーがOracle Application Server Single Sign-OnまたはOracle Ultra Searchデータベースにより正常に認証された後、Oracle Ultra Search GUIにより、Oracle Ultra Searchインスタンスを選択するための画面が表示されます。
Oracle Ultra Search GUIでは、Oracle Internet DirectoryサーバーまたはOracle Ultra Searchリポジトリが参照され、管理ユーザーが管理権限を持つすべてのOracle Ultra Searchインスタンスが検索されます。
管理ユーザーは、リストからOracle Ultra Searchインスタンスを選択します。
関連項目: 『Oracle Internet Directoryアプリケーション開発者ガイド』 |
Oracle Ultra Searchには、検索結果を問い合せて表示するための、完全な機能を備えた問合せアプリケーションが含まれています。問合せアプリケーションには、検索ポートレットが含まれています。
Oracle Ultra Searchのポートレットは、Oracle Application Server Portal用の検索ポートレットの作成方法を説明します。この検索ポートレットは、JavaServer Pageアプリケーションとして実装されます。同じポートレットが、Oracle Application Server Portal製品の機能としてインストールされています。
関連項目:
|
Oracle Application ServerのOracle Ultra Searchは、Oracle Collaboration SuiteのOracle Ultra Search、およびOracle DatabaseのOracle Ultra Searchと同じ製品ですが、次の2つの点で異なります。
Oracle Databaseは、OracleAS Portalと統合されていません。ただし、OracleASおよびOracle Collaboration Suiteがインストールされている場合、Oracle Ultra SearchによりPortalユーザーは、強力な複数リポジトリ検索を自分のポータル・ページに追加できます。OracleASおよびOracle Collaboration Suiteでは、Portal独自のリポジトリをクロールし、検索可能にする機能もあります。Portalクローラは、Portalのページ・グループをデータ・ソースとして認識します。
OracleAS Single Sign-OnユーザーはOracle Application Server製品のすべてのコンポーネントに一度でログオンでき、Oracle Ultra Searchの管理インタフェースによって、データベース・ユーザーまたはシングル・サインオン・ユーザーのユーザー管理操作を実行できます。認証シングル・サインオン・ユーザーに、Oracle Ultra Searchのログオン画面が表示されることはありません。かわりに、認証SSOユーザーはインスタンスを即時に選択できます。シングル・サインオン・ユーザーにOracle Ultra Searchの管理権限がない(「ユーザー」タブで設定)場合は、エラーが戻されます。シングル・サインオンは、Oracle Identity Managementインフラストラクチャでのみ使用可能です。
Oracle Ultra Searchは、Oracleサーバーに対するクライアント・プログラムとして実行されます。サーバー構成のバックエンドまたは中間層にデプロイできます。
Oracle Ultra Searchの問合せインタフェースと管理ツールは、任意のHTMLブラウザ・クライアントからアクセスできます。管理ツールは、中間層の特定のJavaクラスに依存しています。この論理的な中間層は、データベース・サーバーを実行する物理的なコンピュータと同じか、Oracle Application Serverを実行している別のコンピュータにある場合があります。Oracle Ultra Searchデータベースのバックエンドは、Oracle Ultra Searchのデータ・ディクショナリで構成されています。このデータ・ディクショナリには、異なるすべてのリポジトリ上にあるメタデータの他に、クローラの駆動に必要なスケジュールとJavaクラスも格納されています。クローラ自体は、データベース・サーバー・コンピュータ上で実行するか、別のコンピュータ上でリモートで実行できます。
図1-2は、Oracle Ultra Searchのシステム構成を示しています。