4.3.6 異表記展開指定
単純文字列指定では,例えば,検索対象文字列に「ボウリング」を指定した場合,「ボウリング」だけを検索対象とします。これに対し,異表記展開指定では,検索対象文字列を同義語異表記の文字列に展開し,その文字列も検索対象とします。例えば,「ボウリング」を指定した場合,「ボウリング」だけではなく,「ボーリング」や「ボゥリング」などを検索することができます。英文検索の異表記展開は,半角アルファベット文字列を対象とした,半角アルファベット大小文字列展開をして文字列を検索します。このように,異表記展開を指定すると,より広い範囲での文字列検索が可能となります。
異表記展開指定の形式を次の図に示します。
展開モードは,展開する異表記に応じて指定します。異表記オプションの種類と指定する展開モードの対応を次の表に示します。
これら展開モードは単独で指定するだけではなく,組み合わせて指定することもできます。例えば,全角文字のアルファベット大小文字展開,および全角半角文字展開をする場合は,「AE」と指定します。展開モードの指定がない場合は,「AKE」が指定されたと仮定されます。なお,「BCL」を指定した場合は,「K」を指定したときと同じ展開となります。
展開モードは,順不同で指定できます。必要な組み合わせを指定してください。
- 異表記展開指定時の注意事項
-
長大な英文に対してアルファベット大小文字展開を実行したり,長大なカタカナ文字列に対してカタカナ異表記展開を実行したりすると,展開数の増加によって,多大なリソースが必要になったり,レスポンスが低下したりすることがあります。
異表記展開指定をする場合は,次のような点に留意してください。
-
エンドユーザが自由に検索条件を指定できるようなシステムの場合,環境設定時に,環境定義ファイルで最大同義語異表記展開数を設定しておくことをお勧めします。これによって,異表記展開数が多大になった場合にエラーで中断させることができ,システムのリソース消費量を制限できます。
-
長大なカタカナ文字列に対して,カタカナ異表記展開を必ず実行するような運用の場合は,拗音統一機能を使用してカタカナ展開数を削減してください。拗音統一機能は,インデクス定義時に定義します。また,環境設定時に,環境定義ファイルで最大同義語異表記展開数を設定して,リソース消費量の上限値を設定してください。
-
英文に対して,アルファベット大小文字展開を必ず実行するような運用の場合は,異表記展開指定ではなく,大小文字統一機能を使用することをお勧めします。大小文字統一機能は,インデクス定義時に定義します。
英文に対して大小文字展開を指定すると,それぞれの単語に対して大小文字展開が実行され,そのすべての組み合わせのOR検索が実行されます。展開数は,「1単語当たり三つの展開形式+指定文字列」の4パターンとなり,「4のn乗(nは単語数)」になります。ただし,指定された文字が展開パターンと一致する場合は3パターンとなり,展開数は「3のn乗(nは単語数)」になります。
展開例を次に示します。
- 指定した英文
long long ago ,there were three little pigs.
- アルファベット大小文字展開の結果
long long ago ,there were three little pigs. Long long ago ,there were three little pigs. LONG long ago ,there were three little pigs. long Long ago ,there were three little pigs. :
この場合の展開数は「展開数=3×3×3×3×3×3×3×3=38=6,561パターン」となります。さらに,全角半角異表記展開を同時に指定した場合は,それぞれの展開結果をすべて全角とすべて半角の2パターンに展開するため,展開数が2倍になります。
展開数の増加は,リソースの増加およびレスポンスの低下につながるので,このような検索は避けてください。
-
長大なカタカナ文字列に対して,カタカナ異表記展開を必ず実行するような運用の場合は,拗音統一機能を使用してカタカナ展開数を削減してください。拗音統一機能は,インデクス定義時に定義します。また,環境設定時に,環境定義ファイルで同義語異表記展開用最大メモリサイズを設定して,リソース消費量の上限値を設定してください。
長大なカタカナ文字列に対してカタカナ異表記展開を指定すると,カタカナ文字列のそれぞれの部分に対してカタカナ異表記展開が実行され,そのすべての組み合わせのOR検索が実行されます。なお,カタカナ異表記展開は,アルファベット大小文字展開や全角半角展開のように明確な規則に従った展開でなく,XML Extensionで設定されているルールに基づいて展開されます。このため,カタカナ文字列によって展開数は異なります。
展開例を次に示します。
- 指定したカタカナ文字列
-
バイクバイクバイクバイクバイク
- カタカナ異表記展開の結果
-
「バイク」は「ヴアイク」,「ヴァイク」,「ヴアィク」,「ヴァィク」,「バイク」,「バィク」の6パターンに展開されるため,それぞれ「バイク」の部分を6パターンに展開した組み合わせが検索条件になります。したがって,例のように「バイク」が5回つながっているようなカタカナ文字列の展開数は,「展開数=6×6×6×6×6=65=7,776パターン」になります。
展開数の増加は,リソースの増加およびレスポンスの低下につながるので,このような検索は避けてください。
-
展開速度を落とさずに検索を実行するには,部分展開検索モードを指定して検索を実行してください。この検索モードを使用するかどうかは,環境定義ファイルで指定します。指定方法については,「2.6.2(2) 設定できる項目」を参照してください。なお,部分展開検索モードで検索を実行すると,システムのリソース消費量が増加します。このため,検索最大ワークメモリサイズ(phj_mem_search)の設定値を見直す必要があります。検索最大ワークメモリサイズで指定したメモリサイズを超えた場合には,「メモリ不足エラー」,「検索用ワークファイルを使用する」のどちらかを指定できます。
-
- 指定例
-
文字列「COMPUTER」のアルファベット大小文字および全角半角文字展開を含む。
SOUNDEX_EXP( "COMPUTER","AE" )