2.5.6 インデクスの定義

文書検索プラグインでのインデクスの作成は,通常のインデクス定義,および差分インデクスを使用した登録性能を向上させるためのインデクス定義があります。また,文書の登録または更新時のインデクス作成方法を指定することもできます。

注意事項
大量の文書が登録されている表に対し,CREATE INDEXでn-gramインデクスを作成する場合,タイムアウトが発生する場合があります。これを避けるために,大量の文書のインデクスを作成するCREATE INDEXを実行するときは,次に示す設定をしてタイムアウトを無制限にしてから実行してください。
HiRDBのシステム共通定義

pd_watch_time=0

クライアント環境変数

PDCWAITTIME=0

また,この場合はログを取得しない運用をお勧めします。ログを取得しない運用については,「5.3.1(3) ログレスモード」を参照してください。

以降,各定義方法について説明します。

<この項の構成>
(1) 通常のインデクス定義
(2) インデクスファイル自動拡張機能のインデクス定義
(3) インデクス作成ルール追加機能のインデクス定義
(4) 大小文字・全角文字半角文字統一機能のインデクス定義
(5) 拗音統一機能のインデクス定義
(6) 濁音統一機能のインデクス定義
(7) 削除文字指定機能のインデクス定義
(8) 文字単位インデクス作成機能のインデクス定義
(9) 差分インデクス定義
(10) インデクス作成方法指定
(11) UCS4のインデクス定義
(12) 英文検索機能のインデクス定義
(13) 統制ルール指定機能のインデクス定義
(14) ひらがなカタカナ統一機能のインデクス定義
(15) 検索高速化インデクス(V2)機能のインデクス定義
(16) カタカナ異表記統一機能のインデクス定義
(17) IVS対応機能のインデクス定義

(1) 通常のインデクス定義

全文検索用または概念検索用のインデクス作成情報を定義するには,定義系SQLのCREATE INDEXを使用します。この定義をすることで,全文検索機能や概念検索機能が使用できるようになります。

CREATE INDEXのインデクス型識別子にはNGRAMと指定してください。また,RDエリア名には,「2.5.4 データ格納領域の確保」でn-gramインデクス情報の格納領域として確保したRDエリアを指定してください。n-gramインデクスプラグインで使用するインデクスのRDエリアは,ログ取得モードとなります。CREATE INDEXの詳細については,マニュアル「HiRDB Version 9 SQLリファレンス」を参照してください。

なお,CREATE INDEX実行時に指定するプラグインオプションには複数の定義が指定できます。

(例)
複数の定義を指定する場合は,次のように定義ごとに,(半角コンマ)で区切って指定します。

PLUGIN '定義,定義,定義,…'

インデクスの定義では,全文検索機能だけを使用する場合と,全文検索機能に加えて,概念検索機能を使用する場合とでは,CREATE INDEXの指定方法が異なります。それぞれのインデクスの定義例を次に示します。

全文検索機能だけを使用する場合
全文検索機能だけを使用する場合の,インデクスの定義例を次の図に示します。

図2-11 全文検索機能使用時のインデクス定義例

[図データ]
全文検索機能に加えて,概念検索機能を使用する場合
全文検索機能に加えて,概念検索機能を使用する場合は,CREATE INDEXのプラグインオプションに次の定義の追加が必要です。

PLUGIN 'CONCEPT_ON'

この指定を省略した場合,概念検索用のインデクスが作成されないため,概念検索を実行できません。概念検索機能を使用する場合の,インデクスの定義例を次の図に示します。

図2-12 概念検索機能使用時のインデクス定義例

[図データ]

(2) インデクスファイル自動拡張機能のインデクス定義

インデクスファイル自動拡張機能を使用すると,インデクスファイル作成時の空き領域を,各論理ファイルの拡張領域として使用できます。これによってRDエリアを有効利用できるようになるため,インデクスファイル自動拡張機能の使用をお勧めします。この機能を使用する場合は,プラグインオプションに次の定義が必要です。

PLUGIN 'FLEX_AREA'

この機能を使用するとインデクスが自動的に拡張するため,インデクスの拡張ユティリティを実行する必要はありません。この機能を利用した場合にインデクスの拡張ユティリティを実行したときは,無視されます。

インデクスファイル自動拡張機能を使用する場合の,インデクス定義例を次の図に示します。

図2-13 インデクスファイル自動拡張機能使用時のインデクス定義例(全文検索用インデクスの場合)

[図データ]

(3) インデクス作成ルール追加機能のインデクス定義

インデクス作成ルール追加機能とは,標準で作成するインデクス情報に,カタカナ,漢字,数字,英字など,すべての文字の種類(文字種)の組み合わせを追加する機能です。この機能を使用することで,検索タームがさまざまな文字種の組み合わせで構成される場合の検索性能が向上します。

特に,概念検索機能を使用する場合には,インデクス作成ルール追加機能を使用することをお勧めします。

(a) インデクス作成ルール追加機能の定義方法

インデクス作成ルール追加機能を使用する場合には,CREATE INDEXのプラグインオプションに対して次の表に示す内容を定義してください。

表2-8 CREATE INDEXのプラグインオプションに対する定義内容

定義内容説明
INDEX_ALLすべての文字種の組み合わせを追加します。特に,概念検索機能を使用する場合には,併用することをお勧めします。
INDEX_MEDIUMカタカナ,数字,および記号の一部の文字種の組み合わせを追加します。専門分野で使用する用語や技術系の用語が頻出する場合に,使用することをお勧めします。
注※
半角の英字で記述します。

インデクス作成ルール追加機能を使用する場合の,インデクスの定義例を図2-14および図2-15に示します。

図2-14 インデクス作成ルール追加機能使用時(INDEX_MEDIUM)のインデクス定義例(全文検索用のインデクスの場合)

[図データ]

図2-15 インデクス作成ルール追加機能使用時(INDEX_ALL)のインデクス定義例(概念検索用のインデクスの場合)

[図データ]

(b) インデクス作成ルール追加機能使用時の注意

インデクス作成ルール追加機能はSGMLTEXT型の列に対してだけ指定できます。FREEWORD型の列に対しては指定できません。

(4) 大小文字・全角文字半角文字統一機能のインデクス定義

大文字と小文字,または全角文字と半角文字の違いを区別しないで検索を実行したい場合には,大小文字・全角文字半角文字統一機能を使用します。

(a) 大小文字・全角文字半角文字統一機能の定義方法

大小文字・全角文字半角文字統一機能を使用する場合には,CREATE INDEXのプラグインオプションに対して次の表に示す内容を定義してください。

表2-9 定義内容

定義内容説明
SAMECASE=ON英大文字と英小文字を区別しないでインデクスを作成します。
SAMEWIDE=ON全角文字と半角文字の英数字,カタカナ,記号を区別しないでインデクスを作成します。
注※
半角の英字で記述します。SAMECASESAMEWIDEを組み合わせて指定できます。

大小文字・全角文字半角文字統一機能使用時のインデクス定義例を図2-16図2-17および図2-18に示します。

図2-16 大小文字統一機能使用時のインデクス定義例(全文検索用のインデクスの場合)

[図データ]

図2-17 全角文字半角文字統一機能使用時のインデクス定義例(全文検索用のインデクスの場合)

[図データ]

図2-18 大小文字統一機能,および全角文字半角文字統一機能使用時のインデクス定義例(概念検索用のインデクスの場合)

[図データ]

(b) 大小文字・全角文字半角文字統一機能使用時の注意

(5) 拗音統一機能のインデクス定義

検索時に「や」と「ゃ」,「よ」と「ょ」などの拗音を区別しないようにするには,拗音統一機能を使用します。

(a) 拗音統一機能の定義方法

拗音統一機能を使用する場合は,CREATE INDEXのプラグインオプションに次の定義を追加してください。

PLUGIN 'SAMEY=ON'

拗音統一機能を使用する場合の,インデクスの定義例を次の図に示します。

図2-19 拗音統一機能使用時のインデクス定義例

[図データ]

「SAMEY=ON」を指定すると,次の拗音が統一されます。

[図データ]

(b) 拗音統一機能使用時の注意

(6) 濁音統一機能のインデクス定義

検索時に「バ」や「ハ゛」,「ぱ」や「は゜」のように濁音や半濁音を区別しないようにするには,濁音統一機能を使用します。

(a) 濁音統一機能の定義方法

濁音統一機能を使用する場合は,CREATE INDEXのプラグインオプションに次の定義を追加してください。

PLUGIN 'SAMED=ON'

濁音統一機能を使用する場合の,インデクスの定義例を次の図に示します。

図2-20 濁音統一機能使用時のインデクス定義例

[図データ]

「SAMED=ON」を指定すると,濁音,半濁音が統一されます。

(b) 濁音統一機能使用時の注意

(7) 削除文字指定機能のインデクス定義

検索に使用しない文字を除いて検索性能を向上させるには,削除文字指定機能を使用します。

(a) 削除文字指定機能の定義方法

削除文字指定機能を使用する場合は,CREATE INDEXのプラグインオプションに次の定義の追加が必要です。

PLUGIN 'DELcode=ON'

削除文字指定機能を使用する場合の,インデクスの定義例を次の図に示します。

図2-21 削除文字指定機能使用時のインデクス定義例

[図データ]

「DELcode=ON」を指定すると,次の文字が削除されます。

全角文字の "。"(句点),"、"(読点),全角スペース,

半角文字の "。"(句点),"、"(読点),半角スペース(0x20),

改行コード(0x0a,0x0d),タブコード(0x09)

(b) 削除文字指定機能使用時の注意

(8) 文字単位インデクス作成機能のインデクス定義

インデクス容量を削減する方法として,1文字ずつインデクスを作成することができます。この機能を文字単位インデクス(1gramインデクス)作成機能といいます。

(a) 文字単位インデクス作成機能の定義方法

文字単位インデクス作成機能を使用する場合は,CREATE INDEXのプラグインオプションに次の定義の追加が必要です。

PLUGIN 'INDEX_GRAM1'

文字単位インデクス作成機能を使用する場合の,インデクスの定義例を次の図に示します。

図2-22 文字単位インデクス作成機能使用時のインデクス定義例

[図データ]

(b) 文字単位インデクス作成機能使用時の注意事項

(9) 差分インデクス定義

登録性能を向上させるために,小容量の一時的な登録用インデクスに,文書を追加します。この登録用インデクスを差分インデクスといいます。

(a) 差分インデクスの定義方法

差分インデクスを使用する場合は,CREATE INDEXのプラグインオプションに差分インデクスとして使用する容量を定義します。サイズはキロバイト単位で,次のように定義します。

PLUGIN 'SUB_INDEX=xxxxxx'

なお,差分インデクスとして使用できる容量の最大値は102,400キロバイト,最小値は40,000キロバイトです。差分インデクスの定義が省略された場合,差分インデクスは作成されません。

差分インデクス使用時のインデクスの定義例を図2-23および図2-24に示します。

図2-23 差分インデクス使用時のインデクス定義例(全文検索用のインデクスの場合)

[図データ]

図2-24 差分インデクス使用時のインデクス定義例(概念検索用のインデクスの場合)

[図データ]

(b) 登録先インデクスの指定方法

差分インデクスを作成した場合,ユーザはHiRDBクライアント環境変数の指定によって,MASTERインデクスへの登録か,差分インデクスへの登録かを選択できます。

HiRDBクライアント環境変数は次のように指定します。

環境変数名称 : PDPLUGINNSUB
指定できる値 YまたはN
Y:差分インデクスへの登録
N:MASTERインデクスへの登録

環境変数に指定がない場合は,Y(差分インデクスへの登録)が仮定されます。ただし,次の場合には環境変数の指定内容に関係なく,MASTERインデクスへ登録します。

(c) 差分インデクス使用時の注意事項

(10) インデクス作成方法指定

表のSGMLTEXT型列に文書を登録している状態でCREATE INDEXを実行する場合,次のどれかの方法を指定できます。運用形態に合わせて指定してください。

(a) インデクス作成方法指定の定義方法

インデクス作成方法指定を使用する場合,CREATE INDEXのプラグインオプションに即時登録,初期分割登録,または分割遅延登録の定義を追加します。インデクス作成方法指定の定義を省略した場合,即時登録が適用されます。

即時登録
表に登録されている文書について,CREATE INDEX実行時にインデクス作成とインデクスへの文書登録を実行します。
即時登録を使用する場合,CREATE INDEXのプラグインオプションに次の定義を追加,または省略します。

PLUGIN 'CREATEMODE=0'

初期分割登録
表に登録されている文書について,CREATE INDEX実行時にはインデクスへは反映しません。インデクス作成開始ユティリティを使用してインデクスへの文書登録を実行します。インデクス作成開始ユティリティの詳細については,「3.2.14 phnstartidx(インデクス作成開始ユティリティ)」を参照してください。
初期分割登録を使用する場合,CREATE INDEXのプラグインオプションに次の定義を追加します。

PLUGIN 'CREATEMODE=1'

初期分割登録使用時のインデクスの定義例を図2-25および図2-26に示します。

図2-25 初期分割登録使用時のインデクス定義例(全文検索用のインデクスの場合)

[図データ]

図2-26 初期分割登録使用時のインデクス定義例(概念検索用のインデクスの場合)

[図データ]
分割遅延登録
表に登録されている文書について,CREATE INDEX実行時にはインデクスへ反映しません。インデクス作成開始ユティリティを使用してインデクスへの文書登録を実行します。インデクス作成開始ユティリティの詳細については,「3.2.14 phnstartidx(インデクス作成開始ユティリティ)」を参照してください。分割遅延登録を使用する場合,インデクス分割遅延登録用の領域が必要となります。
分割遅延登録を使用する場合,CREATE INDEXのプラグインオプションに次の定義を追加します。

PLUGIN 'CREATEMODE=2,DELAY_SIZE=インデクス分割遅延登録用領域サイズ(キロバイト)'

インデクス分割遅延登録用領域サイズの見積もりについては,「2.3.2(1)(b) ユーザLOB用RDエリア容量」を参照してください。また,分割遅延登録を設定していないインデクスに対しては,インデクス情報変更ユティリティを実行することで分割遅延登録を設定したインデクスに移行できます。インデクス情報変更ユティリティの詳細については,「3.2.16 phnmodidx(インデクス情報変更ユティリティ)」を参照してください。指定できる最大値・最小値は次のとおりです。
  • 最大値:129,584キロバイト
  • 最小値:2,608キロバイト
分割遅延登録時のインデクスの定義例を図2-27および図2-28に示します。

図2-27 分割遅延登録使用時のインデクス定義例(全文検索用のインデクスの場合)

[図データ]

図2-28 分割遅延登録使用時のインデクス定義例(概念検索用のインデクスの場合)

[図データ]
分割遅延登録への移行時に実行する,インデクス情報変更ユティリティの指定例を次の図に示します。

図2-29 分割遅延登録への移行時に実行する,インデクス情報変更ユティリティの指定例

[図データ]
分割遅延登録・更新系SQL同時実行
分割遅延登録実行時に,同時にインデクス作成開始ユティリティを実行してインデクスへ文書を登録します。インデクス作成開始ユティリティの詳細については,「3.2.14 phnstartidx(インデクス作成開始ユティリティ)」を参照してください。分割遅延登録・更新系SQL同時実行を使用する場合,分割遅延登録時に情報を退避しておく領域が必要です。CREATE INDEXのプラグインオプションに次の定義を追加します。

PLUGIN 'CREATEMODE=3,DELAY_SIZE=分割遅延登録時に情報を退避する領域サイズ(キロバイト)'

分割遅延登録時に情報を退避する領域サイズの見積もりについては,「2.3.2(1)(b) ユーザLOB用RDエリア容量」を参照してください。
この退避領域に指定できる最大値・最小値は次のとおりです。
  • 最大値:129,584キロバイト
  • 最小値:12,832キロバイト
分割遅延登録・更新系SQL同時実行のインデクスの定義例を次の図に示します。

図2-30 分割遅延登録・更新系SQL同時実行使用時のインデクス定義例

[図データ]
(b) 初期分割登録・分割遅延登録使用時の注意

(11) UCS4のインデクス定義

UCS2の範囲を超えるUCS4の範囲の文字を使用するには,UCS4用の定義が必要になります。また,UCS4インデクスは自動拡張機能を適用します。

(a) インデクスの定義方法

UCS2の範囲を超えるUCS4の範囲の文字を使用する場合は,プラグインオプションに次の定義の追加が必要です。

PLUGIN 'INDEX_UCS4'

(b) インデクス定義時の注意
(c) UCS2からUCS4への移行

UCS2とUCS4はインデクスの構成が異なるため,UCS2用のインデクスをそのままUCS4用のインデクスとして使用することはできません。

UCS2用のインデクスをUCS4用として使用する場合は,インデクス情報変更ユティリティを使用して,変更項目に"INDEX_TYPE=UCS4"を指定して移行してください。インデクス情報変更ユティリティの詳細については,「3.2.16 phnmodidx(インデクス情報変更ユティリティ)」を参照してください。

移行する前のインデクスに次の機能が指定されている場合は,移行コマンド実行時にエラーとなります。

(12) 英文検索機能のインデクス定義

英文に対して検索する場合は,単語単位で検索する英文インデクス定義をしてください。

(a) 英文検索機能のインデクスの定義方法

英文インデクスの定義は次の方法があります。運用に応じてご使用ください。

英文検索機能を使用する場合のインデクス定義例を次の図に示します。

図2-31 英文検索機能を使用する場合のインデクス定義例(英文検索)

[図データ]

(b) 英文検索機能使用時の注意事項

英文インデクス定義は,次のインデクス定義と併用することはできません。

(c) 英文検索のインデクスに指定できる項目

英文検索機能で使用するインデクスの定義ファイルについて説明します。

インデクスデリミタファイル
機能
英文検索機能で使用するインデクスを作成する場合に必要な単語の区切り(デリミタ)を定義します。定義したインデクスデリミタに従って単語を抽出し,英文検索機能で使用するインデクスを作成します。抽出した単語が64文字(バイト)を超える場合は,65文字(バイト)目以降を無視して,64文字(バイト)目までの文字でインデクスを作成します。なお,インデクスデリミタは検索対象にできません。
指定形式
CREATE INDEXのプラグインオプションにインデクスデリミタファイルのファイル名を指定します。

INDEXdlmt=ファイル名

インデクスデリミタファイルは,CREATE INDEXを実行する前に,Text Search Plug-inをセットアップしたすべてのサーバマシンに対して,同一の内容で次に示すディレクトリに事前に作成しておく必要があります。

$PDDIR/plugin/_phngram/idx_def

また,サンプルファイル($PDDIR/plugin/_phngram/sample/pdplgdlmt)を提供しています。
記述形式
"インデクスデリミタ" [,"インデクスデリミタ"]・・・・・・
  • インデクスデリミタは,"(半角ダブルクォーテーション)で囲んで指定します。
  • インデクスデリミタに使用できる文字は,'0x21'~'0x7E'の範囲の1バイト文字コードです。
  • '0x20'(半角スペース),'0x09'(タブ)は,無条件にインデクスデリミタとなります。
  • 複数指定する場合は,"(半角ダブルクォーテーション)で囲んだインデクスデリミタを,(半角コンマ)で区切って指定します。
  • "(半角ダブルクォーテーション)をインデクスデリミタにする場合は,""と二つ続けて定義し,それを"(半角ダブルクォーテーション)で囲んで指定します。
注意事項
  • インデクスデリミタファイルは省略できます。
  • 省略した場合は,'0x20'(半角スペース),'0x09'(タブ),記号「'0x21'~'0x2F','0x3A'~'0x40','0x5B'~'0x60','0x7B'~'0x7E'」がインデクスデリミタとなります。
  • 不要語,または削除コードに指定した文字コードをインデクスデリミタに指定しないでください。指定した場合は,インデクスデリミタ,削除コード,不要語の優先順位で処理します。
不要語ファイル
機能
英文検索機能に使用するインデクスを作成する場合,検索に不要な単語を定義します。不要語については,検索用インデクスを作成しません。
指定形式
CREATE INDEXのプラグインオプションに不要語ファイルのファイル名を指定します。

NOindex=ファイル名

不要語ファイルは,CREATE INDEXを実行する前に,Text Search Plug-inをセットアップしたすべてのサーバマシンに対して,同一の内容で次のディレクトリに事前に作成しておく必要があります。

$PDDIR/plugin/_phngram/idx_def

記述形式
"不要語" [,"不要語"]・・・・・・
  • 不要語は,"(半角ダブルクォーテーション)で囲んで指定します。
  • 不要語に使用できる文字は,'0x21'~'0x7E'の範囲1バイトの文字コードです。
  • 複数指定する場合は,"(半角ダブルクォーテーション)で囲んだ不要語を,(半角コンマ)で区切って指定します。不要語は255個まで指定できます。
  • "(半角ダブルクォーテーション)を不要語にする場合は,""と二つ続けて定義し,それを"(半角ダブルクォーテーション)で囲んで指定します。
  • 不要語は64文字(バイト)まで指定できます。64文字(バイト)を超えて指定した場合,65文字(バイト)目以降を無視して,64文字(バイト)目までの文字列を不要語とします。
注意事項
  • 不要語ファイルは省略できます。省略した場合は,不要語なしでインデクスを作成します。
  • インデクスデリミタ,または削除コードに指定した文字コードを不要語に指定しないようにしてください。指定した場合は,インデクスデリミタ,削除コード,不要語の優先順位で処理します。
  • 検索条件で指定した検索タームに不要語を含む場合は,不要語を任意の1単語とみなして検索します。なお,検索条件に不要語だけを指定した場合は,入力条件エラーとなります。
削除コードファイル
機能
英文検索機能で使用するインデクスを作成する場合に,削除するコードを定義します。定義した削除コードはないものとして単語を抽出し,英文検索機能で使用するインデクスを作成します。
単語に-(ハイフン)のような不要なコードがある場合,削除してその前後を詰めて扱い,必要なコードだけでインデクスを作成できます。
指定形式
CREATE INDEXのプラグインオプションに削除コードファイルのファイル名を指定します。

DELcode=ファイル名

削除コードファイルは,CREATE INDEXを実行する前に,Text Search Plug-inをセットアップしたすべてのサーバマシンに対して,同じ内容で次のディレクトリに事前に作成しておく必要があります。

$PDDIR/plugin/_phngram/idx_def

記述形式
"削除コード" [,"削除コード"]・・・・・・・
  • 削除コードは,"(半角ダブルクォーテーション)で囲んで指定します。
  • 削除コードに使用できる文字は,'0x21'~'0x7E'の範囲の1バイト文字コードです。
  • 複数指定する場合は,"(半角ダブルクォーテーション)で囲んだ削除コードを,(半角コンマ)で区切って指定します。
  • "(半角ダブルクォーテーション)を削除コードにする場合は,""と二つ続けて定義し,それを"(半角ダブルクォーテーション)で囲んで指定します。
注意事項
  • 削除コードファイルは省略できます。省略した場合は,削除コードなしでインデクスを作成します。
  • インデクスデリミタ,または不要語に指定した文字コードを削除コードに指定しないようにしてください。指定した場合は,インデクスデリミタ,削除コード,不要語の優先順位で処理します。

(13) 統制ルール指定機能のインデクス定義

ユーザが指定した2~3バイトの文字を統制するには,統制ルール指定機能を使用します。

指定形式
CREATE INDEXのプラグインオプションに,統制ルールファイル名を定義します。

PLUGIN 'SAMERULE=ファイル名'または
 
PLUGIN 'SAMERULE2=ファイル名'

SAMERULEに指定した場合は,ほかの文字統一機能よりも優先されます。SAMERULE2に指定した場合は,ほかの文字統一を実施したあとに,この機能で定義した統制を行います。また,統制ファイルは,CREATE INDEXを実行する前に,次のディレクトリに事前に作成しておく必要があります。

UNIXの場合

$PDDIR/plugin/_phngram/idx_def

Windowsの場合

%PDDIR%¥plugin¥_phngram¥idx_def

記述形式
 

統制文字,統制される文字,・・・
統制文字,統制される文字,・・・

  • 一つの統制グループを一行で記述してください。
  • 2~3バイト文字の1文字を半角コンマで区切って二つ以上指定し,統制文字を先頭に指定してください。
注意事項
  • ルールファイルに指定する文字のコードはHiRDBの文字コードに合わせてください。
  • ルールファイル名は最大256バイトです。
  • 英文インデクスまたはHiRDBの文字コードがutf-8の場合,概念インデクスに対して指定するとエラーになります。
  • SAMERULEとSAMERULE2は同時に指定できません。
  • 一行は4,093バイト以内(改行コード含む)で指定してください。
  • 先頭文字が半角の”#”で始まる行はコメント行として扱います。
  • 空行は無視します。
  • インデクス作成後は統制ルール情報を変更できません。インデクス作成後にルールファイルの内容を変更してもインデクスには反映されません。
  • 統制文字と統制される文字を指定する場合,エラーになるケースを次に示します。
    ・改行,半角コンマ,および2~3バイトの文字以外を指定した場合
    ・統制される文字に,重複して同じ文字を指定した場合
    ・統制文字に,統制される文字を指定した場合
  • 同義語展開指定をする場合,新規に同義語辞書を作成するか,同義語辞書移行ユティリティを実行して,既存の同義語辞書を移行する必要があります。同義語辞書を作成する方法は,「3.2.5 phssyndicreg(同義語辞書登録ユティリティ)」を参照してください。同義語辞書を移行する方法は,「3.2.7 phssyndicconv(同義語辞書移行ユティリティ)」を参照してください。
  • extracts関数でハイライトタグを埋め込む場合,ハイライト位置条件式に指定する検索タームは文字統一の対象になりません。データを登録したときの文字で指定してください。

(14) ひらがなカタカナ統一機能のインデクス定義

検索時にひらがなとカタカナを区別しないようにするには,ひらがなカタカナ統一機能を使用します。

(a) ひらがなカタカナ統一機能の定義方法

ひらがなカタカナ統一機能を使用する場合は,CREATE INDEXのプラグインオプションに次の定義を追加してください。

PLUGIN 'SAMEK=ON'

ひらがなカタカナ統一機能を使用する場合の,インデクスの定義例を次の図に示します。

図2-32 ひらがなカタカナ統一機能使用時のインデクス定義例

[図データ]

「SAMEK=ON」を指定すると,ひらがなとカタカナが統一されます。

(b) ひらがなカタカナ統一機能使用時の注意

(15) 検索高速化インデクス(V2)機能のインデクス定義

検索を高速化するためには,検索高速化インデクス(V2)機能を使用します。

検索高速化インデクス(V2)機能を使用すると,通常のインデクスよりも検索時のインデクス参照量が少なくなります。次の隣接照合や論理演算を含む検索,および絞込み検索に対してこの機能を使うと効果的です。

なお,検索高速化インデクス(V2)機能を使う場合,通常のインデクスと比べてメモリ使用量,RDエリアの容量,ファイル容量,および適用される環境定義などが異なります。この機能を使用する前に,それぞれの設定を確認してください。

(a) 検索高速化インデクス(V2)機能の定義方法

検索高速化インデクス(V2)機能を使用する場合は,CREATE INDEXのプラグインオプションに次の定義を追加してください。

PLUGIN 'INDEX_V2'

検索高速化インデクス(V2)機能を使用する場合の,インデクスの定義例を次の図に示します。

図2-33 検索高速化インデクス(V2)機能使用時のインデクス定義例

[図データ]

検索高速化インデクス(V2)機能を使用した場合,指定できないプラグインオプション,およびデフォルトで適用されるプラグインオプションがあります。次の表に示します。

表2-10 検索高速化インデクス(V2)機能使用時に指定できないプラグインオプション

定義文字列定義の説明検索高速化インデクス(V2)機能使用時の指定可否
FLEX_AREAインデクスファイル自動拡張機能のインデクス定義※1
INDEX_GRAM1文字単位インデクス作成機能のインデクス定義×
SUB_INDEX差分インデクスの定義×
INDEX_UCS4UCS4の範囲の文字を使用する場合のインデクスの定義※2
ENGLISH英文インデクスの定義(単語一致)
ENGLISH_STANDARD英文インデクスの定義(単語一致,前方一致)
INDEXdlmt英文インデクスのデリミタ指定
NOindex英文インデクスの不要語指定
(凡例)
△:指定が無視されます。
×:指定するとエラーになります。
▲:バージョン09-05以降は指定できます。09-05より前は指定するとエラーになります。
注※1
デフォルト値として適用されます。
注※2
HiRDBの文字コードがUTF-8の場合はデフォルトでINDEX_UCS4を適用します。

(b) 検索高速化インデクス(V2)機能使用時の注意

(16) カタカナ異表記統一機能のインデクス定義

カタカナ異表記を区別しないようにするには,カタカナ異表記統一機能を使用します。カタカナ異表記統一機能を使用すると,特定のカタカナを区別しないでインデクスが作成できます。

カタカナ異表記統一機能で置き換えられる文字を次に示します。

表2-11 カタカナ異表記統一機能で置き換えられる文字

置き換え前の文字置き換え後の文字
ツィ
ヴァ
ヴィ
ヴェ
ヴォ
テュチュ
フュヒュ
ヴュビュ
(a) カタカナ異表記統一機能の定義方法

カタカナ異表記統一機能を使用する場合は,CREATE INDEXのプラグインオプションに次の定義を追加してください。

PLUGIN 'SAMEE=ON'

図2-34 カタカナ異表記統一機能使用時のインデクス定義例

[図データ]

「SAMEE=ON」を指定すると,カタカナ異表記が統一されます。

(b) カタカナ異表記統一機能使用時の注意

(17) IVS対応機能のインデクス定義

UnicodeのIVS(Ideographic Variation Sequence)に対応する場合,次のどちらかの方法を指定できます。運用形態に合わせて指定してください。

(a) IVS対応機能の定義方法

IVSに対応する場合,CREATE INDEXのプラグインオプションにVS識別モード,またはVS無効化モードの定義を追加します。

VS識別モード
VS識別モードを使用する場合は,CREATE INDEXのプラグインオプションに次の定義を追加してください。

PLUGIN 'IVSMODE=1'

VS識別モードを使用する場合の,インデクスの定義例を次の図に示します。

図2-35 VS識別モード使用時のインデクス定義例

[図データ]
VS無効化モード
VS無効化モードを使用する場合は,CREATE INDEXのプラグインオプションに次の定義を追加してください。

PLUGIN 'IVSMODE=2'

VS無効化モードを使用する場合の,インデクスの定義例を次の図に示します。

図2-36 VS無効化モード使用時のインデクス定義例

[図データ]
(b) IVS対応機能使用時の注意