第4章

概念検索の実装

この章では、exteNd DirectorアプリケーションにおけるAutonomyベース概念検索の実装プロセスのフロー手順について説明します。

この章では、次のトピックについて説明します。

 
Top of page

CMリポジトリの検索:SearchおよびContent Management APIの統合方法

exteNd Directorに装備されているデータフェッチャでは、exteNd Director CM (Content Management)リポジトリに保存されているコンテンツやメタデータに対してAutonomyベース検索を排他的に実行できます。CMサブシステムは、Search APIを介してexteNd Director DRE (Dynamic Reasoning Engine)と通信します。このプロセスフローは、次の図のとおりです。

srcProcessFlowCMFetcher

このシナリオでは、Search APIをラップするCM APIクラスを使用して、exteNd Directorアプリケーションで概念検索を実装します。これらのラッパクラスは、CMリポジトリにあり、exteNd Director DREによりインデックスが作成されているコンテンツやメタデータでクエリを構築および実行するメソッドを提供します。

CMフェッチャは次の検索機能を自動的に実行します。

 
Top of page

CMリポジトリ以外のデータソースの検索

Autonomy技術をexteNd Directorで使用してCMリポジトリ以外のデータソースを検索するには、法的および契約的な条件を満たし、Autonomy, Inc.の別売りフェッチャ製品を購入する必要があります。製品を購入すると、exteNd Director Search APIを使用して、カスタムデータソースからコンテンツをフェッチしたり、クエリしたりすることができます。

また、カスタムデータをCMリポジトリにインポートして、CMラッパクラスをAutonomyベース概念検索に使用することもできます。

 
Top of page

概念検索実装のプロセスフロー

次の図は、CMリポジトリのコンテンツでAutonomyベース検索のサポートを実装するために推奨されるプロセスフローを示します。次の節で、各プロセスについて詳しく説明します。

srcSearchFlow

 
Top of page

プロジェクトおよび検索環境の設定

Autonomyベース概念検索機能をCMサブシステムで使用するには、環境を次のように設定する必要があります。

For more informationこれらの設定手順の詳細については、を参照してください。

 
Top of page

アプリケーションリソースの開発

SearchサブシステムおよびCMサブシステムは、exteNd DirectorアプリケーションでAutonomyベース検索機能を実装するための検索コンポーネント、JSPページ、およびサーブレットなどのアプリケーションリソースを開発できるAPIを提供しています。

Search APIがAutonomy APIに対して提供するラッパクラスは、カスタムデータソースからコンテンツをフェッチし、概念スタイルクエリをこのデータに対して構築および実行する場合に使用できます。

CM APIはSearch APIをラッパし、特にCMリポジトリを検索するためのクラスおよびメソッドを提供します。

 
Top of section

検索操作の実装

この節では、exteNd Directorアプリケーションで実装できる検索操作について説明します。

操作のタイプ

Search APIを使用してexteNd Directorアプリケーションで実装できる主な操作は、次のとおりです。

操作

説明

参照先

フェッチ

構造化データおよび非構造化データを、クエリ用のインデックスが作成されるクエリエンジンにインポートします。

を参照してください。

クエリ

インデックスが作成されたコンテンツでクエリを作成および実行して、結果を処理します。

およびを参照してください。

For more informationSearchクラスおよびメソッドを使用する方法の詳細、およびコード例については、、および『API参照』を参照してください。

インデックス作成とクエリの関係

exteNd Director DREは、そのインデックス作成ジョブをキューに入れ、非同期に実行します。そのため、ドキュメントによっては、インデックス作成に他のドキュメントより時間がかかることもあり、クエリをすぐに使用できないこともあります。したがって、Autonomyベース検索を実装する場合、インデックス作成プロセスをクエリ発行前に終了できる時間を確保してください。

 
Top of section

プログラムを使用した例

この節では、Search APIおよびCM APIを使用してexteNd DirectorアプリケーションでAutonomyベース検索を実装するアプリケーションリソースを開発する場合の最良の実践例を示します。

委任の使用

「委任」は、サービスの位置を隠すラッパです。委任モデルは、J2EE Business Delegateパターンに準拠しています。

委任を使用する場合、サービスがローカルマネージャオブジェクトまたはEJBのどちらを使用しているかを認識する必要はありません。委任は、まずローカルマネージャのインスタンスを生成しようとします。このインスタンス化に失敗すると、代わりにEJBを利用しようとします。この方法により、開発者は、クライアントとサーバで同じコードを使用して、サービスをインスタンス化できます。

For more information委任の詳細については、『exteNd Directorアプリケーションの開発』のexteNd DirectorアプリケーションでのJavaコードの作成に関する章を参照してください。

CM APIは、CMリポジトリでの検索操作を管理するための委任インタフェースを提供し、Search APIは、カスタムデータソースの検索アクティビティを管理するための委任を提供しています。Autonomyベース検索をexteNd Directorアプリケーションで実装する場合、これらの委任を次のように使用することをお勧めします。

データソース

使用するメソッド

CMリポジトリ

カスタム

For more informationこれらのオブジェクトの使用方法については、およびを参照してください。

ロジックフロー

exteNd Directorアプリケーションで検索を実装する場合に推奨されるロジックフローは、次のとおりです。このロジックをコンポーネントのgetComponentData()メソッドに追加します。

  1. データをフェッチします。つまり、インデックス作成のためにコンテンツやメタデータをデータソースからexteNd Director DREにインポートします。

    exteNd Directorには、CMリポジトリのデータフェッチャが付属しています。このリポジトリをデータソースとして使用する場合、フェッチプロセスは自動的に行なわれます。

    Autonomyのその他のフェッチャを使用してデータソース外で作業する場合、フェッチプロセスをプログラムで開始する必要があります。この手順は、次のとおりです。

    データソース

    操作手順

    CMリポジトリ

    すべての更新がすぐにインポートおよびインデックス作成されるように、CMリポジトリと関連exteNd Director DREデータベースを同期化する方法を指定します。次の操作を実行できます。

    CMリポジトリ以外のデータソース

    1. Autonomy, Inc.との法的および契約的条件を満たします。この1つの方法として、Autonomy, Inc.の別売りフェッチャ製品を購入することができます。

    2. データフェッチャ記述子で説明されているように、各データフェッチャの記述子を作成します。

    3. 各データソースに対して、EbiDataFetcherDelegateインタフェースを実装するオブジェクトのインスタンスを生成します。

    4. fetchData()メソッドを各EbiDataFetcherDelegateオブジェクトで呼び出し、インデックス作成のためにデータをデータソースから関連exteNd Director DREにインポートします。

    For more information詳細については、を参照してください。

  2. 空白のクエリオブジェクトのインスタンスを生成します。

    検索対象

    使用するメソッド

    CMリポジトリ

      com.sssw.cm.factory.EboFactory.getQuery()
    

    カスタムデータソース

      com.sssw.search.factory.EboFactory.getQuery()
    

  3. クエリタイプを設定します。

    For more information    Autonomyベースクエリタイプについては、を参照してください。

  4. クエリ文字列を指定します。

    For more information    構文については、を参照してください。

  5. 返される結果の「最大数」や「省略する関連度」などその他のパラメータを設定します。

    ヒント:   メソッドはcom.sssw.search.api.EbiQueryで呼び出す必要があります。

  6. クエリ実行のオブジェクトを取得します。

    検索対象

    操作手順

    CMリポジトリ

    CMリポジトリのクエリで説明されているように、EbiContentMgmtDelegateインタフェースを実装するオブジェクトを取得します。

    カスタムデータソース

    カスタムデータソースのクエリで説明されているように、EbiQueryEngineDelegateインタフェースを実装するオブジェクトを取得します。

  7. クエリを実行します。

  8. 結果を処理します。

For more informationこれらの手順の実装の詳細については、およびを参照してください。

コード例:CMリポジトリのクエリ

次のコードセグメントは、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));
  }
  ...

 
Top of section

CMリポジトリとの通信

CM APIを使用して、プログラムによりCMリポジトリのコンテンツを追加および更新する場合、このロジックを実装するコンポーネントおよび関連リソースを作成する必要があります。CMリポジトリとの通信方法の詳細については、CMリポジトリのコンテンツの更新を参照してください。

 
Top of section

アプリケーションリソースのパッケージ化

検索アプリケーションリソースを開発する前に、exteNd Directorプロジェクト内でこれらをパッケージ化する方法を決定する必要があります。『exteNd Directorアプリケーションの開発』のリソースセットの使用に関する章の説明を参照してください。

カスタムリソースをexteNd Directorプロジェクトに追加すると、次のアプリケーションの構築、アーカイブ、展開で説明されているように、アプリケーションをアプリケーションサーバに展開することができます。

 
Top of page

アプリケーションの構築、アーカイブ、展開

J2EEアプリケーションの場合と同様に、exteNd Directorでアプリケーションを構築、アーカイブ、および展開します。

For more information    サーバ固有の説明については、『exteNd Directorアプリケーションの開発』のexteNd Directorアプリケーションの展開に関する章を参照してください。

 
Top of page

CMリポジトリのコンテンツの更新

CMリポジトリのコンテンツを追加および更新する方法はいくつかあります。この節では、これらの方法について説明します。exteNd Directorプロジェクト設定の決定で説明されているように、適切なサブシステムがexteNd Directorプロジェクトに含まれている限り、これらのメソッドを自由に組み合わせることができます。

 
Top of section

CMS管理コンソールのコンテンツの更新

CMS管理コンソールは、exteNd Director Web層の一部です。これは、CMリポジトリのコンテンツを作成、更新、および発行するためのグラフィカルユーザインタフェースを提供する組み込みのWebアプリケーションです。CM管理コンソールでコンテンツを作成すると、カスタムメタデータをドキュメントに定義して関連付ける機能など、検索を簡単にするexteNd Director CMの機能を利用できます。

For more information詳細については、『コンテンツ管理ガイド』のCMS管理コンソールに関する章を参照してください。

 
Top of section

CM APIを使用したコンテンツの更新

CM APIのクラスやメソッドを使用して、CMリポジトリでコンテンツを作成、更新、および発行するexteNd Directorコンポーネント、サーブレット、およびJSPページを作成します。

For more information詳細については、『コンテンツ管理ガイド』のドキュメントの管理に関する章を参照してください。

 
Top of section

サードパーティアプリケーションのコンテンツの作成と更新

サードパーティアプリケーションのコンテンツは作成したり、更新したりできます。このコンテンツで概念検索を実行する前に、次の手順を実行する必要があります。

サードパーティアプリケーションがWebDAV対応クライアントである場合、WebDAVサブシステムを使用して、コンテンツをCMリポジトリに転送することができます。これは、『コンテンツ管理ガイド』の共同オーサリングのためのDirectorによるWebDAVクライアントの使用に関する章で説明されています。この場合、exteNd Directorプロジェクトを作成するときに、WebDAVサブシステムが含まれていることを確認してください。

重要:   WebDAVを介してCMリポジトリにインポートされたサードパーティコンテンツは、「システムリソース」として保存されます。システムリソースには、これらにカスタムメタデータを定義できないという制限があります。ただし、コンテンツおよび標準メタデータを検索することはできます。この制限は、exteNd Directorコンテンツインポートユーティリティを使用する場合、またはexteNd Director WebDAVサブシステムで提供されるクライアントAPIを使用して独自のWebDAVクライアントを作成する場合は適用されません。カスタムメタデータはこのタイプのカスタム設計WebDAVクライアントで作成されたコンテンツと関連付けることができます。

For more information詳細については、『コンテンツ管理ガイド』のコンテンツのインポートおよび独自のWebDAVクライアントの構築に関する章を参照してください。

 
Top of page

クエリのテスト

アプリケーションを展開する前に、exteNd Director DRE Administrationコンソールを使用して、クエリを個別にテストできます。

For more information詳細については、クエリのテストを参照してください。

 
Top of page

検索アプリケーションのトラブルシューティング

exteNd Directorは、検索アプリケーションをデバッグし、一般的な問題を修正するいくつかの技術を提供しています。

For more information詳細については、を参照してください。



Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...