Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


5.4.6 ワード検索時の区切り文字の選択(DELIMITER)

ワード検索に対応するテキストインデクスを定義する際,単語と単語の間を区切る区切り文字の種類を指定する必要があります。ワード検索に対応するテキストインデクスについては,「5.4.5 ワード検索用のテキストインデクスの指定(TEXT WORDCONTEXT)」を参照してください。

区切り文字は,CREATE INDEX文のDELIMITER(テキストインデクス区切り文字指定)で指定します。DELIMITERは,INDEXTYPETEXT WORDCONTEXTを指定しているときに指定する必要があります。

区切り文字の種類には,DEFAULTALLがあります。DELIMITERの指定時に,どちらかを指定する必要があります。DEFAULTALLが区切り文字として扱う文字を次に示します。

DEFAULT

ワード検索をする際,次の文字を区切り文字として扱います。

  • 半角空白(0x20

  • タブ(0x09

  • 改行(0x0A

  • 復帰(0x0D

  • ピリオド(0x2E

  • 疑問符(0x3F

  • 感嘆符(0x21

ALL

ワード検索をする際,次の文字を区切り文字として扱います。

  • 半角空白(0x20

  • タブ(0x09

  • 改行(0x0A

  • 復帰(0x0D

  • ピリオド,疑問符,および感嘆符を含む1バイトの記号(0x210x2F0x3A0x400x5B0x600x7B0x7E

記号を含む英語の文章を検索する場合,区切り文字によって検索結果が異なります。その点を考慮して,区切り文字の種類を選択してください。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の指定が有効になります。

  • 導出表が展開されない場合

    DELIMITERALLを指定してもその指定は無効になります。DELIMITERDEFAULTを指定したときに仮定される区切り文字で,ワード検索が実行されます。

なお,アーカイブマルチチャンク表を等価変換した内部導出表については,上記の規則は適用されません。

導出表の展開規則については,マニュアルHADB SQLリファレンス構成要素内部導出表を参照してください。