この節では,テキストインデクサーの実行環境および運用に関する注意事項について説明します。
テキストインデクサーの実行者は,Administratorsグループのメンバーである必要があります。
インストールディレクトリがテキストインデクサーの実行環境を作成するディレクトリになります。
テキストインデクサー実行時は,HiRDBを起動しておく必要があります。
テキストインデクサー(EDMTextIndex)は,並列実行できません。同時に複数のテキストインデクサーを実行した場合はエラーになります。
テキストインデクサー(EDMTextIndex)は,テキスト抽出処理に時間が掛かることがあるのでDocumentBrokerサーバの運用停止中にバッチジョブで実行することを推奨します。
インデクス登録処理では,テキストインデクサー(EDMTextIndex)実行時に遅延一括作成機能を使用することで,効率的にインデクス登録できます。遅延一括作成機能を使用する場合は,HiRDBサーバ定義でpd_plugin_ixmk_dirを定義し,クライアントの環境変数PDPLGIXMK=YESを設定した環境でテキストインデクサーを実行します。テキストインデクサー終了後に,HiRDBデータベース再編成ユティリティを使用して遅延一括作成を実行します。
ただし,テキストインデクサーでインデクスファイルを作成し,現在遅延一括作成待ちとなっているインデクスファイル領域に対して,ユーザが別途書き込み処理をしようとするとHiRDBの遅延一括作成機能の仕様によってエラーになります。また,RDエリア単位に排他制御されるため,インデクスファイルが更新されているときは,そのインデクスファイルは検索対象とならなくなることがあります。
HiRDBデータベース再編成ユティリティについては,マニュアル「HiRDB コマンドリファレンス」を参照してください。
テキストインデクサーの実行時に全体の処理時間の上限値を設定できます。ただし,テキストインデクサー実行中に,指定した処理時間の上限値に達すると処理を打ち切ります。それまでに処理した文書については全文検索インデクスへの登録を実行します。
テキスト抽出の結果,テキスト抽出ライブラリの付加情報と抽出したテキストとの合計の長さが,MaxOfLengthの値を超えない場合,抽出結果のすべてが格納されます。このとき格納されるテキストは,抽出されたテキストより付加情報分,テキスト長が長くなります。
テキスト抽出の結果,テキスト抽出ライブラリの付加情報と抽出したテキストとの合計の長さが,MaxOfLengthの値を超える場合,MaxOfLengthの値に合わせてテキスト抽出が打ち切られます。
ただし,XML文書のテキスト抽出では,メッセージKMBV12009-I出力後にKMBV12037-Wが出力され,テキスト抽出結果は登録されません。この場合は,MaxOfLengthの値をKMBV12037-Wのテキストデータ長に表示された値以上に設定して再度実行してください。
テキストインデクサーを実行する場合,環境変数ファイルのTMPDIRパラメタに次の一時ファイル作成ディレクトリを必ず作成してください。
ディレクトリ名には,存在し,かつテキストインデクサー実行者の書き込み権限があるディレクトリを指定してください。
RenditionType定義ファイルで,RenditionTypeの値とフィルタ拡張子の組み合わせが誤った状態でテキストインデクサーを実行すると,不正なテキストをインデクス登録する場合があるのでご注意ください。RenditionTypeの指定については,「3.4 RenditionType定義ファイル」を参照してください。
テキストインデクサーでLimitTimeタイムアウトが発生した場合,コマンドは次のように終了します。
タイムアウトが発生する前にメッセージKMBV12047-Iが出力されている文書については正常に登録されます。
テキストインデクサーが処理対象にする文書クラス,およびその文書クラスに全文インデクスとして指定できるプロパティについては,「付録A 処理対象の全文検索インデクス用プロパティ」を参照してください。
定義ファイル生成コマンド(EDMCrtTIDF)を使用して定義ファイルを生成すると,半角空白を含むクラス名またはプロパティ名を出力することがあります。テキストインデクサーでは半角空白を含むクラス名またはプロパティ名を使用できませんので,半角空白を含むクラス名またはプロパティ名は半角空白を含まない名前に変更してから使用してください。
テキストインデクサーを実行するためには,Document Filter for Text Searchのパス設定が必要です。環境変数にパスの設定が行われていることを確認してください。
テキスト抽出処理中にプロセスを強制終了させたり,サポート外の文書ファイルを読み込ませたりすると,一時ディレクトリ内に一時ファイルが残る場合があります。一時ファイルの名前は特に決まっていません。一時ファイルができる場所は,次の順番で決定されます。
この一時ファイルは,テキスト抽出処理が終われば不要になります。そのままにしておくとディスク容量が圧迫されますので,適宜削除してください。
なお,テキスト抽出できるドキュメントの種類については,各テキスト抽出ライブラリをご確認ください。
テキスト抽出する文書ファイルによっては,次のような現象が発生することがあります。
図2-3 一つのセル内が複数行で構成された表の例
PDFファイルによっては次のような現象が発生しますので注意してください。
テキストインデクサーの実行(EDMTextIndexの実行)では,RenditionType定義ファイルに指定したRenditionTypeがマスタレンディションのRenditionTypeと一致しない場合,サブレンディションのRenditionTypeを検索して,一致した文書に対してテキスト抽出を実行します。
先頭に指定したRenditionTypeと一致するRenditionTypeがマスタレンディションおよびサブレンディションに存在しない場合,次に指定したRenditionTypeと一致するRenditionTypeをマスタレンディション,サブレンディションの順に検索し,一致した文書に対してテキスト抽出を実行します。
文書オブジェクトの構成例を図2-4に示します。また,図2-4を例として,RenditionType定義ファイルの定義とテキストインデクサーが処理対象とする文書との関連について,例1~3で説明します。
図2-4 文書オブジェクトの構成例
application/msword:filterA
application/vnd.ms-excel:filterA
application/pdf:filterB
application/pdf:filterB
application/vnd.ms-excel:filterA
application/msword:filterA
application/x-js-taro:filterA
application/vnd.lotus-1-2-3:filterA
application/vnd.ms-excel:filterA
RenditionType定義ファイルへのRenditionTypeの指定については,「3.4 RenditionType定義ファイル」を参照してください。コマンドの詳細については,「4. コマンドリファレンス」を参照してください。
EDMTextIndexコマンド実行時に-oオプションを指定すると,インデクスの登録状態に関係なく処理対象文書クラス中のすべての文書を処理対象とします。
登録済みのインデクスについては,文書実体ファイルから抽出したインデクスで上書きしますのでご注意ください。