HiRDB Text Search Plug-in Index Generator

[目次][用語][索引][前へ][次へ]

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 インデクスの作成」を参照してください。