第5章

コンテンツおよびメタデータの取得

この章では、フェッチについて説明します。また、exteNd Director検索アプリケーションでフェッチを実装する方法についても説明します。

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

 
Top of page

フェッチについて

コンテンツのフェッチに関連する2つのプロセスは、次のとおりです。

 
Top of section

デフォルトのフェッチャ

exteNd Directorには、exteNd Director CMリポジトリ用のデータフェッチャがあります。CMフェッチャでは、CMリポジトリに保存されているデータでのみAutonomyベース概念検索を実行できます。

CMフェッチャが自動的に開始するプロセスは、次のとおりです。

プロセス

説明

フェッチ

インデックス作成のためにデータをCMリポジトリからexteNd Director DREデータベースにインポートします。

同期化

インデックスが作成されるように、CMリポジトリでの更新を対応するDREデータベースに転送します。

フェッチは、同期化が実行されると開始します。同期モードで説明されているように、リアルタイムまたはバッチプロセスとして同期化を実行するようにスケジュール設定できます。

リアルタイム(または即時)の同期化では、即時同期化を起動する操作で説明されているように、プロセスを起動するアクションを指定できます。

デフォルトでは、同期化は、即時モードでリアルタイムプロセスとして発生し、次のいずれかのCM操作が発生したときに行われます。

 
Top of section

カスタムデータソースのフェッチャ

CMリポジトリ以外のデータソースを使用する場合、Autonomy, Inc.の別売りデータフェッチャを購入する必要があります。

Autonomyの別売りデータフェッチャを購入する場合、アプリケーションでのフェッチの実装で説明されているように、Search APIを使用してフェッチプロセスをプログラムで開始する必要があります。また、データフェッチャ記述子で説明されているように、使用する各データフェッチャの記述子を作成する必要もあります。

 
Top of page

アプリケーションでのフェッチの実装

exteNd Director Search APIは、コンテンツをフェッチするメソッドを提供するAutonomy APIにラッパクラスを提供しています。

 
Top of section

主なフェッチャクラスおよびインタフェース

コンテンツをフェッチする主なクラスおよびインタフェースは、次のとおりです。

クラスまたはインタフェース

説明

パッケージ

EbiDataFetcherDelegate

EbiDataFetcherインタフェースを実装するオブジェクトへのアクセスの委任。このインタフェースは、コンテンツを指定したデータソースからこのインデックスが作成されるexteNd Director DREにインポートするメソッドを提供します。

com.sssw.search.api

EboFactory

EbiDataFetcherDelegateなどSearchサブシステム委任を取得するメソッドを提供するファクトリクラス

com.sssw.search.client

 
Top of section

フェッチャメソッド

この節では、exteNd Directorアプリケーションでデータフェッチを実行する場合に使用できるSearch APIメソッドについて説明します。

フェッチャ委任の取得

フェッチャ委任を取得するメソッドは、次のとおりです。

  com.sssw.search.client.EboFactory.getDataFetcherDelegate()

このメソッドは、EbiDataFetcherDelegateインタフェースを実装するオブジェクトを返します。このオブジェクトのメソッドは、データフェッチプロセスの呼び出しおよび管理に使用できます。

For more information委任を使用する理由については、プログラムを使用した例を参照してください。

フェッチプロセスの開始

データをフェッチするメソッドは、次のとおりです。

  com.sssw.search.API.EbiDataFetcherDelegate.fetchData()

このメソッドは、ドキュメントデータをソースリポジトリから宛先クエリエンジンデータベースにフェッチします。

 
Top of section

コード例:データのフェッチ

次のコードは、Search APIを使用してフェッチプロセスを開始する方法を示します。

  ...
  //Instantiate a data fetcher delegate
  com.sssw.search.api.EbiDataFetcherDelegate fetcher = com.sssw.search.client.EboFactory.getDataFetcherDelegate(whichFetcher);
  
  //Fetch the data
  fetcher.fetchData(context, false);
  ...

getDataFetcherDelegate()メソッドは、インスタンス化するデータフェッチャを指定する文字列引数を取ります。各データフェッチャでは、次のデータフェッチャ記述子で説明されているように記述子が必要です。

 
Top of page

データフェッチャ記述子

記述子はAutonomyから購入した各データフェッチャに対して作成する必要があります。exteNd Directorは、CMデータフェッチャの記述子を提供します。

データフェッチャ記述子をSearchサブシステムのサービス環境設定ファイルservices.xmlに追加します。

For more information    プロジェクトファイルのある場所の詳細については、『exteNd Directorアプリケーションの開発』のexteNd Directorプロジェクト構造に関する節を参照してください。

 
Top of section

構文

services.xmlのデータフェッチャ記述子の構文は、Search APIのデータフェッチャインタフェースとデータフェッチャ実装クラス間のマッピングを設定します。

このマッピングは、exteNd Directorで提供されているCMデータフェッチャの記述子で説明されます。

  <service>
  <interface>com.sssw.search.api.EbiDataFetcher.CM</interface>
  <impl-class>com.sssw.cm.core.EboDataFetcher</impl-class>
  <description>Data fetcher object for the Content Management subsystem</description>
  <max-instances>0</max-instances>
  <startup>M</startup>
  <namespaced>false</namespaced>
  </service>

<interface>要素の文字列CMは、コード例:データのフェッチで説明されているように、文字列引数としてgetDataFetcherDelegate()メソッドに渡し、フェッチプロセスを開始するデータフェッチャ指定子の例です。

これは、任意のデータフェッチャ記述子で使用する構文です。たとえば、クラスcom.sssw.myco.Fetcherで定義されているMYCOというカスタムデータを購入または作成する場合、次のような記述子を追加する必要があります。

  <service>
  <interface>com.sssw.search.api.EbiDataFetcher.MYCO</interface>
  <impl-class>com.sssw.myco.Fetcher</impl-class>
  <description>Data fetcher object for MYCO</description>
  <max-instances>0</max-instances>
  <startup>M</startup>
  <namespaced>false</namespaced>
  </service>

 
Top of section

データフェッチャのクエリ結果オブジェクトとの関連付け

追加する各データフェッチャに対して、関連するクエリ結果オブジェクト記述子を追加することもできます。CMデータフェッチャに定義されているクエリ結果オブジェクトに対するservices.xmlの記述子は、次のとおりです。

  <service>
  <interface>com.sssw.search.api.EbiQueryResult.CM</interface>
  <impl-class>com.sssw.cm.core.EboQueryResult</impl-class>
  <description>Query result object for the Content Management subsystem</description>
  <max-instances>0</max-instances>
  <startup>M</startup>
  <namespaced>false</namespaced>
  </service>

CMクエリ結果オブジェクトをMYCOデータフェッチャと関連付ける場合、次のような記述子を追加する必要があります。

  <service>
  <interface>com.sssw.search.api.EbiQueryResult.MYCO</interface>
  <impl-class>com.sssw.cm.core.EboQueryResult</impl-class>
  <description>Query result object for MYCO</description>
  <max-instances>0</max-instances>
  <startup>M</startup>
  <namespaced>false</namespaced>
  </service>

次のように、同じ構文を使用して、カスタムクエリ結果オブジェクトの記述子を作成します。

  <service>
  <interface>com.sssw.search.api.EbiQueryResult.MYCO</interface>
  <impl-class>com.sssw.myco.webapp.impl.MycoQueryResult</impl-class>
  <description>Query result object for MYCO</description>
  <max-instances>0</max-instances>
  <startup>M</startup>
  <namespaced>false</namespaced>
  </service>


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