Hitachi

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


1.3.1 全文検索

Text Search Plug-inの文書検索プラグイン(または文字列検索プラグイン)では,ユーザが任意に指定した単語をキーワードにして文書(または文字列データ)を検索します。この検索方法を全文検索といいます。例えば,キーワードを「最新技術」として,「『最新技術』という単語を含む文書(または文字列データ)を探す」という検索ができます。

検索のキーワードになる単語を,検索タームといいます。検索タームにさらに条件を付け加えることで,さまざまな条件での検索ができます。

Text Search Plug-inでの全文検索の概要を次の図に示します。

図1‒2 Text Search Plug-inでの全文検索の概要

[図データ]

〈この項の構成〉

(1) 全文検索の特長

Text Search Plug-inの文書検索プラグインでは,文書をHiRDBの表の一つの列に格納して管理しています。このため,文書の関連情報を,文書を格納した列とは別の列に格納して管理できます。文書を検索する場合に,全文検索条件に加えて,これらの関連情報の値の検索条件を組み合わせて指定できます。また,文書の関連情報(文字列データ)を文字列検索プラグインに格納することもできます。

(2) 全文検索の種類

Text Search Plug-inでの全文検索の基本は,検索タームを指定した検索方法です。この検索方法を基にText Search Plug-inで提供しているさまざまな検索機能を使用することで,文書または文字列データを柔軟に検索できます。Text Search Plug-inで提供する検索条件の種類を次に説明します。

(a) 検索タームを複数指定する検索

検索条件には,検索タームを複数個指定できます。例えば,「『最先端技術』および『パソコン』の両方の単語が含まれる文書(または文字列データ)」を検索できます。この例では,検索ターム同士の論理積(AND条件)を検索の条件にしています。さらに,論理和(OR条件)を検索条件にして,「『最先端技術』または『パソコン』のうち,どちらかを含む文書(または文字列データ)」を検索できます。

(b) 近傍条件検索

二つの検索ターム間の文字数(距離)を検索条件にできます。例えば,「『最新』と『技術』の間の文字数が20文字ちょうどの文字列を含む文書(または文字列データ)」を検索できます。このような検索を近傍条件検索といいます。

(c) 同義語・異表記展開検索

例えば,「ski」を検索タームにする場合,「ski」「Ski」などで表記されている文書(または文字列データ)も検索したい場合があります。同義語・異表記展開検索はこのような場合に使用します。

同義語展開検索では,同義語辞書の定義に基づいて,検索タームの同義語が自動的に展開されます。異表記展開検索では,Text Search Plug-inでのルールに基づいて自動的に検索タームの異表記が展開されます。展開された同義語・異表記は,検索タームとあわせて検索条件にできます。

HiRDBのLIKE述語には,同義語・異表記展開の機能はありません。文字列データの同義語・異表記展開検索を実行する場合は,文字列検索プラグインを使用してください。

(d) 論理演算検索

検索条件式同士の論理演算を条件にする検索を,論理演算検索といいます。例えば,「『条件A』および『条件B』で,両方の条件に一致する文書(または文字列データ)」を検索できます。この例では,検索条件同士の論理積(AND条件)を検索条件にしています。さらに,論理和(OR条件)を検索の条件にして,「『条件A』または『条件B』のうち,どちらかの条件に一致する文書(または文字列データ)」を検索できます。

(e) 構造名を指定した検索

文書検索プラグインで構造化文書を格納した表の列を検索対象とする場合は,その表の構造化文書を格納した列に定義された文書の構造を検索条件として利用できます。例えば,「文書・章・節・項」という構造を持つ文書を格納する列があるとします。この列に対しては,「節の中に『SGML』という単語を含む文書」のように,構造を条件にして検索できます。なお,文字列検索プラグインでは検索条件に構造を指定できません。

(f) 重み付き検索

検索条件に複数のキーワードを指定する場合,それぞれの条件に対して「重み」(重要度)を指定できます。

例えば,「政治」と「経済」という二つのキーワードが含まれる文書を検索する場合に,「経済」というキーワードより,「政治」というキーワードの重要度を上げて検索できます。この場合,「政治」の出現回数によって得点(スコア)を付けた検索結果が得られます。なお,文字列検索プラグインでは検索条件に重みを指定できません。

(g) NOT検索

検索タームを含まない文書(または文字列データ)を検索できます。例えば,「『イントラネット』を含まない文書(または文字列データ)」を検索できます。このような検索を,NOT検索といいます。ただし,スコア情報は取得できません。

(h) ほかの列の検索条件との複合条件検索

検索タームを指定した条件に加えて,文書以外の情報を格納した列に対する検索条件を組み合わせて検索できます。例えば,文書(または文字列データ)を格納している列と文書のページ数を格納している列を持つ表に対して,「『先端技術』という単語を含み,ページ数が200以下である文書(または文字列データ)」を検索できます。

(i) 除外文字検索

検索タームの一部または前後に特定の文字がある場合を除外して,該当する文書を検索できます。例えば,「ローマ」を含む文書の中で,「ローマ字」を含む文書だけを除外して検索できます。