5.4.6 ワード検索時の区切り文字の選択(DELIMITER)
ワード検索に対応するテキストインデクスを定義する際,単語と単語の間を区切る区切り文字の種類を指定する必要があります。ワード検索に対応するテキストインデクスについては,「5.4.5 ワード検索用のテキストインデクスの指定(TEXT WORDCONTEXT)」を参照してください。
区切り文字は,CREATE INDEX文のDELIMITER(テキストインデクス区切り文字指定)で指定します。DELIMITERは,INDEXTYPEにTEXT WORDCONTEXTを指定しているときに指定する必要があります。
区切り文字の種類には,DEFAULTとALLがあります。DELIMITERの指定時に,どちらかを指定する必要があります。DEFAULTとALLが区切り文字として扱う文字を次に示します。
- DEFAULT
-
ワード検索をする際,次の文字を区切り文字として扱います。
-
半角空白(0x20)
-
タブ(0x09)
-
改行(0x0A)
-
復帰(0x0D)
-
ピリオド(0x2E)
-
疑問符(0x3F)
-
感嘆符(0x21)
-
- ALL
-
ワード検索をする際,次の文字を区切り文字として扱います。
-
半角空白(0x20)
-
タブ(0x09)
-
改行(0x0A)
-
復帰(0x0D)
-
ピリオド,疑問符,および感嘆符を含む1バイトの記号(0x21~0x2F,0x3A~0x40,0x5B~0x60,0x7B~0x7E)
-
記号を含む英語の文章を検索する場合,区切り文字によって検索結果が異なります。その点を考慮して,区切り文字の種類を選択してください。DEFAULTを指定した方がよいケースとALLを指定した方がよいケースを,それぞれ次に示します。
- ■DEFAULTを指定した方がよいケース
-
ワード検索で,記号を含めて検索を行いたい場合は,DEFAULTを指定することを推奨します。例えば,URL,メールアドレスなどを検索する場合が該当します。DEFAULTを指定すると,「taro@hitachi.com」で検索するときに,「taro@hitachi」が1つの単語として扱われます。そのため,「taro@hitachi」が含まれるデータだけを検索できます。
もし,ALLを指定した場合,「taro」と「hitachi」が別々の単語として扱われます。そのため,「xxxxx@taro.hitachi.com」や「taro.hitachi@com」のようなデータも一緒に検索されます。
- ■ALLを指定した方がよいケース
-
ワード検索で,記号を含めないで検索を行いたい場合は,ALLを指定することを推奨します。例えば,「high△speed」のような複数の単語(熟語)を検索する場合が該当します。ALLを指定すると,「high△speed」で検索するときに,「high△speed」だけでなく,「high-speed」,「high_speed」のような熟語もまとめて検索することができます。なお,「△」は半角空白を示します。
- ■留意事項
-
ワード検索の対象表に内部導出表が適用された場合,DELIMITERの指定が無効になることがあります。
-
導出表が展開される場合
導出表が展開された結果の列に定義されているワード検索用のテキストインデクスのDELIMITERの指定が有効になります。
-
導出表が展開されない場合
DELIMITERにALLを指定してもその指定は無効になります。DELIMITERにDEFAULTを指定したときに仮定される区切り文字で,ワード検索が実行されます。
なお,アーカイブマルチチャンク表を等価変換した内部導出表については,上記の規則は適用されません。
導出表の展開規則については,マニュアルHADB SQLリファレンスの構成要素の内部導出表を参照してください。
-