Hitachi

HiRDB 全文検索プラグイン HiRDB Text Search Plug-in Version 10


4.4.4 異表記展開指定

単純文字列指定では,例えば,検索対象文字列に「ボウリング」を指定した場合,「ボウリング」だけを検索対象とします。これに対し,異表記展開指定では,検索対象文字列を同義語異表記の文字列に展開し,その文字列も検索対象とします。例えば,「ボウリング」を指定した場合,「ボウリング」だけではなく,「ボーリング」や「ボゥリング」などを検索することができます。英文検索の異表記展開は,半角アルファベット文字列を対象とした,半角アルファベット大小文字列展開をして文字列を検索します。このように,異表記展開を指定すると,より広い範囲での文字列検索が可能となります。

異表記展開指定の形式を次の図に示します。

図4‒21 異表記展開指定の形式

[図データ]

展開モードは,展開する異表記に応じて指定します。異表記オプションの種類と指定する展開モードの対応を次の表に示します。

表4‒10 異表記オプション

異表記オプション

展開モード

説明

アルファベット異表記

A

全角英字の文字列を,次の4パターンに展開します。

  1. すべてが大文字

  2. すべてが小文字

  3. 先頭だけ大文字

  4. 指定した文字列

カタカナ異表記

K

全角カタカナ文字列に対して,カタカナ異表記の展開をします。

カタカナ長音ハイフン展開

L

カタカナ文字列に対して,長音・ハイフン展開をします。このとき,展開されるのは長音・ハイフンだけであり,前後のカタカナ文字列は展開の対象となりません。

カタカナベーシック展開

B

カタカナルールに基づいた展開だけを実行します。

カタカナ拗音展開

C

カタカナ文字列に対して,拗音展開をします。

全角半角異表記

E

指定した文字列中で全角から半角にできるもの,または半角から全角にできるものに対して,次の3パターンに展開します。

  1. すべてが全角文字列

  2. すべてが半角文字列

  3. 指定した文字列

半角アルファベット展開

H

半角英字の文字列を,次の4パターンに展開します。

  1. すべてが大文字

  2. すべてが小文字

  3. 先頭だけ大文字

  4. 指定した文字列

ひらがな拗音展開

Y

ひらがなの拗音の展開をします。

英単語派生表記展開

S

半角英文字の文字列を派生語に展開します。

英単語語尾表記展開

I

英単語を語尾の変換系に展開します。

注※ このオプションを使用するには,Text Search Enhancer for Englishが必要です。

異表記オプションの種類と指定する展開モードの対応の詳細については,「表4-7異表記オプション」を参照してください。

展開モードは単独で指定するだけではなく,組み合わせて指定することもできます。例えば,全角文字のアルファベット大小文字展開,および全角半角文字展開をする場合は,"AE"と指定します。展開モードの指定がない場合は,"AKE"が指定されていると仮定されます。なお,"BCL"を指定した場合は,"K"を指定したときと同じ展開となります。

展開モードは,順不同で指定できます。必要な組み合わせを指定してください。

なお,異表記展開の例については,「4.3.6 異表記展開指定」を参照してください。

異表記展開指定時の注意事項

長大な英文に対してアルファベット大小文字展開を実行したり,長大なカタカナ文字列に対してカタカナ異表記展開を実行したりすると,展開数の増加によって,多大なリソースが必要になったり,レスポンスが低下したりすることがあります。

異表記展開指定をする場合は,次のような点に留意してください。

  • エンドユーザが自由に検索条件を指定できるようなシステムの場合,環境設定時に,環境定義ファイルで同義語異表記展開用最大メモリサイズまたは最大同義語異表記展開数を設定しておくことをお勧めします。これによって,異表記展開数が多大になった場合にエラーで中断させることができ,システムのリソース消費量を制限できます。

  • 英文に対して,アルファベット大小文字展開を必ず実行するような運用の場合は,異表記展開指定ではなく,大小文字統一機能を使用することをお勧めします。大小文字統一機能は,インデクス定義時に定義します。

    英文に対して大小文字展開を指定すると,それぞれの単語に対して大小文字展開が実行され,そのすべての組み合わせの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=3の8乗=6,561パターン」となります。さらに,全角半角異表記展開を同時に指定した場合は,それぞれの展開結果をすべて全角とすべて半角の2パターンに展開するため,展開数が2倍になります。

展開数の増加は,リソースの増加およびレスポンスの低下につながるので,このような検索は避けてください。

  • 長大なカタカナ文字列に対して,カタカナ異表記展開を必ず実行するような運用の場合は,拗音統一機能を使用してカタカナ展開数を削減するようにしてください。拗音統一機能は,インデクス定義時に定義します。また,環境設定時に,環境定義ファイルで同義語異表記展開用最大メモリサイズまたは最大同義語異表記展開数を設定して,リソース消費量の上限値を設定してください。

    長大なカタカナ文字列に対してカタカナ異表記展開を指定すると,カタカナ文字列のそれぞれの部分に対してカタカナ異表記展開が実行され,そのすべての組み合わせのOR検索が実行されます。なお,カタカナ異表記展開は,アルファベット大小文字展開や全角半角展開のように明確な規則に従った展開でなく,TextSearch Plug-inで設定されているルールに基づいて展開されます。このため,カタカナ文字列によって展開数は異なります。

    展開例を次に示します。

指定したカタカナ文字列

バイクバイクバイクバイクバイク

カタカナ異表記展開の結果

「バイク」は「ヴアイク」,「ヴァイク」,「ヴアィク」,「ヴァィク」,「バイク」,「バィク」の6パターンに展開されるため,それぞれ「バイク」の部分を6パターンに展開した組み合わせが検索条件になります。したがって,例のように「バイク」が5回つながっているようなカタカナ文字列の展開数は,「展開数=6×6×6×6×6=7,776パターン」になります。

展開数の増加は,リソースの増加およびレスポンスの低下につながるので,このような検索は避けてください。

  • 展開速度を落とさずに検索を実行するには,部分展開検索モードを指定して検索を実行してください。この検索モードを使用するかどうかは,環境定義ファイルで指定します。指定方法については,「2.8.1(2) 設定できる項目」を参照してください。なお,部分展開検索モードで検索を実行すると,システムのリソース消費量が増加します。このため,検索最大ワークメモリサイズ(phx_mem_search)の設定値を見直してください。

指定例

文字列「COMPUTER」のアルファベット大小文字および全角半角文字展開を含む。

SOUNDEX_EXP( "COMPUTER", "AE" )
SOUNDEX_EXP("COMPUTER", "SH")

英単語派生表記展開,英単語語尾表記展開の詳細については,マニュアル「Text Search Enhancer for English」を参照してください。