![]() ![]() ![]() ![]() ![]() ![]() | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
第4章
この章では、exteNd DirectorアプリケーションにおけるAutonomyベース概念検索の実装プロセスのフロー手順について説明します。
この章では、次のトピックについて説明します。
exteNd Directorに装備されているデータフェッチャでは、exteNd Director CM (Content Management)リポジトリに保存されているコンテンツやメタデータに対してAutonomyベース検索を排他的に実行できます。CMサブシステムは、Search APIを介してexteNd Director DRE (Dynamic Reasoning Engine)と通信します。このプロセスフローは、次の図のとおりです。
このシナリオでは、Search APIをラップするCM APIクラスを使用して、exteNd Directorアプリケーションで概念検索を実装します。これらのラッパクラスは、CMリポジトリにあり、exteNd Director DREによりインデックスが作成されているコンテンツやメタデータでクエリを構築および実行するメソッドを提供します。
CMフェッチャは次の検索機能を自動的に実行します。
インデックス作成のためデータをCMリポジトリからexteNd Director DREにインポートします。このプロセスは「フェッチ」と呼ばれ、で説明されています。検索できるようにするには、データを最初にフェッチする必要があります。
コンテンツやメタデータの変更時に、CMリポジトリと対応するDREデータベースを同期化します。同期モードおよび即時同期化を起動する操作で説明されているように、同期化プロセスのモードや頻度を制御できます。
Autonomy技術をexteNd Directorで使用してCMリポジトリ以外のデータソースを検索するには、法的および契約的な条件を満たし、Autonomy, Inc.の別売りフェッチャ製品を購入する必要があります。製品を購入すると、exteNd Director Search APIを使用して、カスタムデータソースからコンテンツをフェッチしたり、クエリしたりすることができます。
また、カスタムデータをCMリポジトリにインポートして、CMラッパクラスをAutonomyベース概念検索に使用することもできます。
次の図は、CMリポジトリのコンテンツでAutonomyベース検索のサポートを実装するために推奨されるプロセスフローを示します。次の節で、各プロセスについて詳しく説明します。
Autonomyベース概念検索機能をCMサブシステムで使用するには、環境を次のように設定する必要があります。
SearchサブシステムおよびCMサブシステムは、exteNd DirectorアプリケーションでAutonomyベース検索機能を実装するための検索コンポーネント、JSPページ、およびサーブレットなどのアプリケーションリソースを開発できるAPIを提供しています。
Search APIがAutonomy APIに対して提供するラッパクラスは、カスタムデータソースからコンテンツをフェッチし、概念スタイルクエリをこのデータに対して構築および実行する場合に使用できます。
CM APIはSearch APIをラッパし、特にCMリポジトリを検索するためのクラスおよびメソッドを提供します。
この節では、exteNd Directorアプリケーションで実装できる検索操作について説明します。
Search APIを使用してexteNd Directorアプリケーションで実装できる主な操作は、次のとおりです。
操作 |
説明 |
参照先 |
---|---|---|
フェッチ |
構造化データおよび非構造化データを、クエリ用のインデックスが作成されるクエリエンジンにインポートします。 |
|
クエリ |
インデックスが作成されたコンテンツでクエリを作成および実行して、結果を処理します。 |
Searchクラスおよびメソッドを使用する方法の詳細、およびコード例については、、、および『API参照』を参照してください。
exteNd Director DREは、そのインデックス作成ジョブをキューに入れ、非同期に実行します。そのため、ドキュメントによっては、インデックス作成に他のドキュメントより時間がかかることもあり、クエリをすぐに使用できないこともあります。したがって、Autonomyベース検索を実装する場合、インデックス作成プロセスをクエリ発行前に終了できる時間を確保してください。
この節では、Search APIおよびCM APIを使用してexteNd DirectorアプリケーションでAutonomyベース検索を実装するアプリケーションリソースを開発する場合の最良の実践例を示します。
「委任」は、サービスの位置を隠すラッパです。委任モデルは、J2EE Business Delegateパターンに準拠しています。
委任を使用する場合、サービスがローカルマネージャオブジェクトまたはEJBのどちらを使用しているかを認識する必要はありません。委任は、まずローカルマネージャのインスタンスを生成しようとします。このインスタンス化に失敗すると、代わりにEJBを利用しようとします。この方法により、開発者は、クライアントとサーバで同じコードを使用して、サービスをインスタンス化できます。
委任の詳細については、『exteNd Directorアプリケーションの開発』のexteNd DirectorアプリケーションでのJavaコードの作成に関する章を参照してください。
CM APIは、CMリポジトリでの検索操作を管理するための委任インタフェースを提供し、Search APIは、カスタムデータソースの検索アクティビティを管理するための委任を提供しています。Autonomyベース検索をexteNd Directorアプリケーションで実装する場合、これらの委任を次のように使用することをお勧めします。
データソース |
使用するメソッド |
---|---|
CMリポジトリ |
|
カスタム |
|
これらのオブジェクトの使用方法については、およびを参照してください。
exteNd Directorアプリケーションで検索を実装する場合に推奨されるロジックフローは、次のとおりです。このロジックをコンポーネントのgetComponentData()メソッドに追加します。
データをフェッチします。つまり、インデックス作成のためにコンテンツやメタデータをデータソースからexteNd Director DREにインポートします。
exteNd Directorには、CMリポジトリのデータフェッチャが付属しています。このリポジトリをデータソースとして使用する場合、フェッチプロセスは自動的に行なわれます。
Autonomyのその他のフェッチャを使用してデータソース外で作業する場合、フェッチプロセスをプログラムで開始する必要があります。この手順は、次のとおりです。
データソース |
操作手順 |
---|---|
CMリポジトリ |
すべての更新がすぐにインポートおよびインデックス作成されるように、CMリポジトリと関連exteNd Director DREデータベースを同期化する方法を指定します。次の操作を実行できます。
|
CMリポジトリ以外のデータソース |
|
検索対象 |
使用するメソッド |
---|---|
CMリポジトリ |
com.sssw.cm.factory.EboFactory.getQuery() |
カスタムデータソース |
com.sssw.search.factory.EboFactory.getQuery() |
返される結果の「最大数」や「省略する関連度」などその他のパラメータを設定します。
ヒント: メソッドはcom.sssw.search.api.EbiQueryで呼び出す必要があります。
検索対象 |
操作手順 |
---|---|
CMリポジトリ |
CMリポジトリのクエリで説明されているように、EbiContentMgmtDelegateインタフェースを実装するオブジェクトを取得します。 |
カスタムデータソース |
カスタムデータソースのクエリで説明されているように、EbiQueryEngineDelegateインタフェースを実装するオブジェクトを取得します。 |
これらの手順の実装の詳細については、およびを参照してください。
次のコードセグメントは、Autonomyベース検索クエリをCMリポジトリに対して構築して実行する方法を示します。
... //Instantiate a blank query object com.sssw.search.api.EbiQuery query = com.sssw.cm.factory.EboFactory.getQuery(); //Specify the query type query.setQueryType(query.QUERY_TYPE_TEXT); query.setText("animal+mammal"); //Select all columns query.selectAll(); //OR ...Select individual columns, like doc id and title //query.select(com.sssw.cm.core.EbiCmConstants.DOCID); //query.select(com.sssw.cm.core.EbiCmConstants.TITLE); //Ask for a maximum of 50 results query.setMaxNumResults(50); //Ask for results that are at least 80% relevant query.setRelevanceCut(80); //Get the content manager delegate EbiContentMgmtDelegate contentMgr = com.sssw.cm.client.EboFactory.getDefaultContentMgmtDelegate(); //Run the query Iterator iterResults = contentMgr.runQuery(context, query, null, true).iterator(); //Process results while (iterResults.hasNext()) { com.sssw.cm.api.EbiQueryResult res = (EbiQueryResult)iterResults.next() System.out.println(泥OCID:\x94 + res.getID()); System.out.println(典ITLE:\x94 + res.getTitle()); String content = (res.getData() != null) ? new String(res.getData()) :渡one\x94 ; System.out.println(鼎ONTENT:\x94 + content); System.out.println(迭ELEVANCE:\x94 + res.getIntegerProperty(res.PROP_DOC_WEIGHT)); System.out.println(轍UICK SUMMARY:\x94 + res.getProperty(res.PROP_DOC_QUICK_SUMMARY)); } ...
CM APIを使用して、プログラムによりCMリポジトリのコンテンツを追加および更新する場合、このロジックを実装するコンポーネントおよび関連リソースを作成する必要があります。CMリポジトリとの通信方法の詳細については、CMリポジトリのコンテンツの更新を参照してください。
検索アプリケーションリソースを開発する前に、exteNd Directorプロジェクト内でこれらをパッケージ化する方法を決定する必要があります。『exteNd Directorアプリケーションの開発』のリソースセットの使用に関する章の説明を参照してください。
カスタムリソースをexteNd Directorプロジェクトに追加すると、次のアプリケーションの構築、アーカイブ、展開で説明されているように、アプリケーションをアプリケーションサーバに展開することができます。
J2EEアプリケーションの場合と同様に、exteNd Directorでアプリケーションを構築、アーカイブ、および展開します。
サーバ固有の説明については、『exteNd Directorアプリケーションの開発』のexteNd Directorアプリケーションの展開に関する章を参照してください。
CMリポジトリのコンテンツを追加および更新する方法はいくつかあります。この節では、これらの方法について説明します。exteNd Directorプロジェクト設定の決定で説明されているように、適切なサブシステムがexteNd Directorプロジェクトに含まれている限り、これらのメソッドを自由に組み合わせることができます。
CMS管理コンソールは、exteNd Director Web層の一部です。これは、CMリポジトリのコンテンツを作成、更新、および発行するためのグラフィカルユーザインタフェースを提供する組み込みのWebアプリケーションです。CM管理コンソールでコンテンツを作成すると、カスタムメタデータをドキュメントに定義して関連付ける機能など、検索を簡単にするexteNd Director CMの機能を利用できます。
詳細については、『コンテンツ管理ガイド』のCMS管理コンソールに関する章を参照してください。
CM APIのクラスやメソッドを使用して、CMリポジトリでコンテンツを作成、更新、および発行するexteNd Directorコンポーネント、サーブレット、およびJSPページを作成します。
詳細については、『コンテンツ管理ガイド』のドキュメントの管理に関する章を参照してください。
サードパーティアプリケーションのコンテンツは作成したり、更新したりできます。このコンテンツで概念検索を実行する前に、次の手順を実行する必要があります。
サードパーティアプリケーションが、Searchサブシステムで検索できる形式でコンテンツを生成するようにします。
検索形式の設定については、インポート可能なMIMEタイプおよびインポート可能なファイル拡張子を参照してください。
サードパーティアプリケーションがWebDAV対応クライアントである場合、WebDAVサブシステムを使用して、コンテンツをCMリポジトリに転送することができます。これは、『コンテンツ管理ガイド』の共同オーサリングのためのDirectorによるWebDAVクライアントの使用に関する章で説明されています。この場合、exteNd Directorプロジェクトを作成するときに、WebDAVサブシステムが含まれていることを確認してください。
重要: WebDAVを介してCMリポジトリにインポートされたサードパーティコンテンツは、「システムリソース」として保存されます。システムリソースには、これらにカスタムメタデータを定義できないという制限があります。ただし、コンテンツおよび標準メタデータを検索することはできます。この制限は、exteNd Directorコンテンツインポートユーティリティを使用する場合、またはexteNd Director WebDAVサブシステムで提供されるクライアントAPIを使用して独自のWebDAVクライアントを作成する場合は適用されません。カスタムメタデータはこのタイプのカスタム設計WebDAVクライアントで作成されたコンテンツと関連付けることができます。
詳細については、『コンテンツ管理ガイド』のコンテンツのインポートおよび独自のWebDAVクライアントの構築に関する章を参照してください。
アプリケーションを展開する前に、exteNd Director DRE Administrationコンソールを使用して、クエリを個別にテストできます。
詳細については、クエリのテストを参照してください。
exteNd Directorは、検索アプリケーションをデバッグし、一般的な問題を修正するいくつかの技術を提供しています。
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...