フィルタプラグイン関数dbrIdxTextFilter()

機能

全文検索用のテキストデータを抽出します。

形式

int    dbrIdxTextFilter (
      Idx_DocumentInfo *DocumentInfo,
      unsigned long     DataMode,
      char             *TargetData,
      unsigned long     TargetLength,
      unsigned long     MaxTextLength,
      char             *TextData,
      unsigned long    *TextLength,
      unsigned long    *OutFileDeleteFlag);

引数

DocumentInfo《入力》
Idx_DocumentInfo構造体を指定します。Idx_DocumentInfo構造体には,処理対象文書オブジェクトのシステムプロパティ情報を指定します。
DataMode《入力》
プラグイン環境設定ファイルのDataModeエントリにMEMORYを指定した場合は0を,FILEを指定した場合は1を指定します。
TargetData《入力》
DataModeに0を指定した場合
テキスト抽出する対象データのアドレスを指定します。対象データは,テキストインデクサーがデータベースから取り出し,TargetDataの先頭アドレスから対象データ長(TargetLength)分だけコピーします。
DataModeに1を指定した場合
テキスト抽出する対象ファイルのフルパスを,最後が¥0で終わる文字列で指定します。テキストインデクサーは対象ファイルをデータベースから取り出して環境変数TMPDIR下に作成し,この関数の呼び出し後に対象ファイルを削除します。
TargetLength《入力》
テキスト抽出する対象データのデータ長を指定します。
MaxTextLength《入力》
テキスト抽出する上限値を指定します。この値は,環境設定ファイルのMaxOfLengthエントリ,またはEDMTextIndexコマンドの-lオプションのどちらかで指定します。どちらにも値を指定した場合は,-lオプションに指定した値が優先されます。
TextData《出力》
DataModeに0を指定した場合
テキストインデクサーがMaxTextLengthで指定した値(単位:バイト)だけ確保した領域に,テキスト抽出後のデータを格納します。
DataModeに1を指定した場合
テキストインデクサーが確保した領域(256バイト)に,テキスト抽出後のファイルのフルパスを最後が¥0で終わる文字列で指定してください。この場合,EDMTextIndexコマンドを実行したユーザに,テキスト抽出後のファイルの読み取り権限が必要です。
TextLength《出力》
DataModeに0を指定した場合
テキスト抽出後のデータのデータ長を指定してください。
DataModeに1を指定した場合
この指定は無視されます。
OutFileDeleteFlag《出力》
DataModeに0を指定した場合
この指定は無視されます。
DataModeに1を指定した場合
TextDataに指定したテキスト抽出後のファイルを削除する場合は1を指定してください。削除しない場合は0を指定してください。

戻り値

戻り値内容テキストインデクサーの対処
0正常終了処理を継続します。
正の値テキスト抽出に失敗しました。この値はユーザが定義します。ワーニングメッセージKMBV12252-Wを出力し,文書のインデクス登録処理を継続します。
書誌情報の登録を指定している場合は,書誌情報の登録処理を実行します。書誌情報を登録しないように指定している場合は,エラーとなった文書はテキスト抽出に失敗した文書として扱います。
負の値テキスト抽出に失敗しました。この値はユーザが定義します。エラーメッセージKMBV12308-Eを出力し,文書のインデクス登録処理を中断し,コマンドを終了します。エラーとなった文書は,テキスト抽出に失敗した文書として扱います。

注意事項

構造体の定義

struct IDX_DOCUMENTINFO {
 char *pidxDVSubOIID;      //処理対象文書クラスのOIID
 char *pidxRenditionOIID;  //処理対象文書(レンディション)のOIID
 char *pidxRenditionType;  //処理対象文書(レンディション)のRenditionType
 char *pidxRetrievalName;  //処理対象文書(コンテント)のRetrievalName
} Idx_DocumentInfo;

pidxDVSubOIID
処理対象文書クラスのOIIDを指定します。
pidxRenditionOIID
処理対象文書(レンディション)のOIIDを指定します。
pidxRenditionType
処理対象文書(レンディション)のRenditionTypeを指定します。このとき,処理対象文書のRenditionTypeプロパティから「MIME:」を除いた形式で指定します。
pidxRetrievalName
処理対象文書(コンテント)のdmaPrp_RetrievalNameを指定します。