2.2 入力表および出力表の構成

この節では,入力表と出力表の構成について説明します。

Text Search Plug-in Index Generatorは,HiRDBに登録されている電子ドキュメントを取り出し,テキストデータを抽出します。この電子ドキュメントが登録されている表を入力表といいます。抽出したテキストデータは,全文検索用データとしてHiRDBに登録されます。この全文検索用データが格納される表を出力表といいます。これら入力表および出力表の構成は,HiRDBサーバ構成に従う必要があります。Text Search Plug-in Index Generatorを適用したHiRDBサーバ環境を新規に構築する場合は,入力表およぴ出力表がその環境に適した表構成となるように設計してください。既存のHiRDBサーバ環境にText Search Plug-in Index Generatorを適用する場合は,入力表およぴ出力表がその環境に適応するのかどうかを検討してください。なお,全文検索用列が入力表にある場合と,異なる表にある場合では,表構成が異なります。

全文検索用列が入力表にある場合と異なる表にある場合での,入力表と出力表の構成を,表2-1~2-3に示します。

表2-1 全文検索用列が入力表と同じである場合の表構成

項番データ型(データ長)ナル属性入出力情報設定者インデクス作成列追加
ユニークキー列ユーザ指定不可入力ユーザ推奨既存列流用可
入力ドキュメント格納列BINARYまたはBLOB入力ユーザ不要既存列流用可
入力ドキュメントファイル名称格納列MVARCHAR(512バイト)入力ユーザ不要既存列流用可
入力ドキュメントコンテントタイプ情報列VARCHAR(255バイトまたは256バイト)入力ユーザ不要既存列流用可
インデクス作成指定情報列INTEGER不可入力ユーザ推奨既存列流用可
インデクス作成状態列INTEGER不可入出力初期化:ユーザ
更新:TSPIndexerコマンド
推奨追加要
TSPIndexer保守情報列VARCHAR(8バイト)不可入出力初期化:ユーザ
更新:TSPIndexerコマンド
不要追加要
全文検索用列SGMLTEXTまたはFREEWORD出力TSPIndexerコマンド必須追加要

表2-2 全文検索用列が入力表と異なる場合の入力表構成

項番データ型(データ長)ナル属性入出力情報設定者インデクス作成列追加
ユニークキー列ユーザ指定不可入力ユーザ推奨既存列流用可
入力ドキュメント格納列BINARYまたはBLOB入力ユーザ不要既存列流用可
入力ドキュメントファイル名称格納列MVARCHAR(512バイト)入力ユーザ不要既存列流用可
入力ドキュメントコンテントタイプ情報列VARCHAR(255バイトまたは256バイト)入力ユーザ不要既存列流用可
インデクス作成指定情報列INTEGER不可入力ユーザ推奨既存列流用可
インデクス作成状態列INTEGER不可入出力初期化:ユーザ
更新:TSPIndexerコマンド
推奨追加要
TSPIndexer保守情報列VARCHAR(8バイト)不可入出力初期化:ユーザ
更新:TSPIndexerコマンド
不要追加要

表2-3 全文検索用列が入力情報表と異なる場合の出力表の構成

項番データ型ナル属性入出力情報設定者インデクス作成列追加
ユニークキー列ユーザ指定不可入出力ユーザ推奨既存列流用可
全文検索用列SGMLTEXTまたはFREEWORD出力TSPIndexerコマンド必須追加要

以降,表2-1から表2-3に示す列の詳細について説明します。

<この節の構成>
(1) ユニークキー列
(2) 入力ドキュメント格納列
(3) 入力ドキュメントファイル名称格納列
(4) 入力ドキュメントコンテントタイプ格納列
(5) インデクス作成指定情報列
(6) インデクス作成状態列
(7)  TSPIndexer保守情報列
(8) 全文検索用列

(1) ユニークキー列

TSPIndexerコマンドがデータを操作するときに必要なユニークキーを指定します。各行で重複しないキー値を指定してください。ユニークキーを構成する列は,複数列でユニークとなる列群にも対応します。指定できる列数は3列までです。既存列を指定することもできます。指定できる列の属性を次に示します。

注意事項
  • 文字データ型と混在文字データ型列の長さは,最大255バイトです。
  • 各国文字データ型の長さは,最大127文字です。
  • 全文検索用列が入力情報表と異なる場合,出力表は入力表と同じ構成にしてください。入力表と同一のキーが出力表にあった場合は更新され,なかった場合は追加されます。
  • TSPIndexerコマンドでは,値をチェックしませんが,値がユニークでない場合は結果を保証しません。
  • ユニークキーに文字データを使用する場合は,半角文字コード,全角文字コード,TAB(0x09),NL(0x0a),CR(0x0d)を使用してください。これら以外のコードを使用した場合は,正常に処理されない場合があります。

(2) 入力ドキュメント格納列

全文検索対象とする電子ドキュメントが格納されている列です。既存列を指定できます。指定できる列の属性を次に示します。

ナル値データまたはデータ長が0バイトのデータに対して,全文検索列への登録処理が実行された場合,行データ不正として当該行の処理をスキップします。

(3) 入力ドキュメントファイル名称格納列

全文検索対象とする電子ドキュメントのファイル名を格納する列です。「ファイル名.拡張子」の形式で格納してください。ファイル名が512バイトを超える場合は,ファイル名の先頭文字を削除して格納します。終端の拡張子は削除しません。ファイル名には.(ピリオド)を指定できます。

ナル値データまたはデータ長が0バイトのデータに対して,全文検索列への登録処理が実行された場合,行データ不正として当該行の処理をスキップします。

(4) 入力ドキュメントコンテントタイプ格納列

全文検索対象とする電子ドキュメントのコンテントタイプを格納する列です。

(5) インデクス作成指定情報列

全文検索用列への登録を実行するかどうか(全文検索対象とするかどうか)を指定します。次のどちらかの値を指定してください。

全文検索用列への登録を実行しません。
全文検索用列への登録を実行します。

(6) インデクス作成状態列

(5)でインデクス作成を指定された電子ドキュメントに対して,実際に登録を完了したかどうかを設定します。この列は,電子ドキュメントを登録または更新したときに,初期値で初期化されます。TSPIndexerコマンドは,初期状態の場合に登録処理を実行します。

インデクス作成状態列には,次のどれかが設定されます。

設定値内容
0全文検索列へデータ未登録(初期値)
1全文検索列へデータ登録済み
100抽出したテキスト長がText Search Plug-inの制限を超えました
101入力行のデータ不正(サポート外文書含む)によって,登録に失敗しました
102データ不正以外の要因によって,登録に失敗しました

抽出したテキストデータは,全文検索用列に登録されます。このとき,登録先の全文検索用列のデータ型種別によって,登録できるテキストサイズが次のように異なります。

抽出したテキストデータがこのサイズを超える場合は,LEVEL_FORCEに指定した内容に従って処理されます。LEVEL_FORCEの指定値とそれに対応する処理を次に示します。

0を指定した場合
エラーとなります。該当行に対する登録処理をスキップし,インデクス作成状態列には「100(抽出したテキスト長がText Search Plug-inの制限を超えました)」が設定されます。
1を指定した場合
テキストの先頭から,格納可能な長さだけ格納します。インデクス作成状態列には「1(全文検索列へデータ登録済み)」が設定されます。

(7)  TSPIndexer保守情報列

TSPIndexerコマンドの保守用の列です。電子ドキュメントの登録・更新時には,初期値で初期化してください。それ以外の場合は更新しないでください。

(8) 全文検索用列

電子ドキュメントから抽出したテキストデータを登録する,全文検索用列です。データ型は,SGMLTEXT型またはFREEWORD型のどちらかを設定できます。NGRAMインデクスまたはIXFREEWORDインデクスは,Text Search Plug-inの遅延更新機能をご使用になることをお勧めします。全文検索用列のインデクス定義については,「2.3 インデクスの作成」を参照してください。