uCosminexus DocumentBroker Version 5 概説

[目次][用語][索引][前へ][次へ]

4.2.2 全文検索

ここでは,全文検索について説明します。

<この項の構成>
(1) 全文検索とは
(2) 全文検索の種類
(3) 全文検索で指定できる機能

(1) 全文検索とは

全文検索とは,登録したコンテンツを対象に,キーワードとなる文字列(検索ターム)を一つまたは複数個指定して実行する検索です。例えば,「文書のコンテンツ中に『コンピュータ』という文字列が含まれる文書を探す」などの検索が実行できます。

なお,全文検索には,次の2種類の検索が含まれます。

このマニュアルでは,これらの二つの検索を合わせて,「全文検索」といいます。それぞれの検索に特有の説明をする場合は,「検索タームを指定する全文検索」または「概念検索」と区別して説明します。

全文検索の対象にする文書は,全文検索機能付き文書クラスを基に作成されている必要があります。全文検索機能付き文書クラスの作成方法については,「4.5.2 全文検索インデクスの作成」を参照してください。

なお,edmSQLでは,全文検索の次の機能を実現するための関数を提供しています。

ここでは,これらの検索の概要と,使用するedmSQLの関数について説明します。また,全文検索では,HiRDB Text Search Plug-in,またはHiRDB XML Extensionの機能によって,検索タームや種文章をそのまま指定する検索だけでなく,同義語や異表記を同時に検索したり,検索タームに重みを指定したりすることもできます。これらの全文検索で指定できる機能の概要についても説明します。

(2) 全文検索の種類

ここでは,全文検索の種類について説明します。

(a) プレーンテキストに対する全文検索(検索タームを指定する全文検索)

プレーンテキストとは,構造を持たないテキスト形式の文書のことです。文書のコンテンツに対して,一つまたは複数個の検索タームを指定した検索が実行できます。複数個の検索タームを指定する場合,それらの論理条件も指定できます。

例えば,「文書のコンテンツに『コンピュータ』または『データベース』という文字列を含む文書」を検索したりできます。また,属性検索条件と組み合わせて,「文書のタイトル(プロパティ)が『データベース入門』であり,文書のコンテンツに『コンピュータ』という文字列を含む文書」のような検索も実行できます。

この検索には,contains関数を使用します。

(b) プレーンテキストに対する概念検索

全文検索実行時に,特定の検索タームを基に検索する以外に,「ある文章に似た内容の文書を検索したい」というような検索が実行できます。例えば,「リサイクルを含む環境問題」について書かれた文書を探したい場合に,「ゴミのリサイクル」に関する文章を基に検索が実行できます。

概念検索は,edmSQLなどの検索条件に種文章を指定することで実行できます。種文章として指定できる容量は,5メガバイト以内です。

ここでは,種文章に「…ゴミのリサイクルによって,資源が有効活用され,ゴミが減量化されます。…」という文字列を指定した場合の,概念検索の実行の流れを説明します。

  1. HiRDB Text Search Plug-in Conceptual Extensionの機能によって,種文章から特徴タームが抽出されます。
    特徴タームとは,種文章に指定した文章から,漢字,かたかなおよびアルファベットを抽出した単語です。
    この例の場合は,「ゴミ」,「リサイクル」,「資源」,「有効活用」,「減量化」というような単語が抽出されます。
  2. HiRDB Text Serach Plug-in Conceptual Extensionによって,1.の特徴タームに優先順位が与えられた検索用特徴タームが選出されます。
    検索用特徴タームの選出基準については,HiRDB Text Search Plug-in,またはHiRDB XML Extensionの環境定義ファイルに指定します。詳細は,マニュアル「HiRDB Text Search Plug-in」,または「HiRDB XML Extension」を参照してください。概念検索では,この検索用特徴タームを基に,検索が実行されます。
  3. 検索用特徴タームを検索タームとして,全文検索が実行されます。さらに,種文章との適合度順(検索用特徴タームを多く含む文章順)に,スコア値が設定されて,検索結果が出力されます。

なお,概念検索条件に指定する種文章は,?パラメタで指定する必要があります。この検索には,concept_with_score関数を使用します。

(c) 検索結果にハイライトタグの埋め込みをしてSGML形式で出力する検索

全文検索実行時に,検索結果として検索タームがハイライト表示されるSGML形式のファイルを出力します。例えば,「ネットワーク」という検索タームが含まれるテキスト形式の文書を検索する場合に,検索結果と同時に「<STRONG>」というハイライト表示用タグが埋め込まれたSGML形式のファイルを出力できます。なお,検索結果として取得するハイライト表示用の文書は,検索対象である文書とは異なる文書として作成されます。

次に,検索対象文書とハイライト表示用の文書の例を示します。

検索対象文書
<!DOCTYPE body SYSTEM "DOC.dtd">
<body>
<p>
連絡事項
<note>
ネットワークの変更については,添付資料を参照してください。
</body>

 

検索結果として取得するハイライト表示用の文書
<!DOCTYPE body SYSTEM "DOC.dtd">
<body>
<p>
連絡事項
<note>
<STRONG>ネットワーク</STRONG>の変更については,添付資料を参照してください。
</body>

(3) 全文検索で指定できる機能

edmSQLでは,全文検索条件として, HiRDB Text Search Plug-in,またはHiRDB XML Extensionの規則に従った検索条件が指定できます。

HiRDB Text Search Plug-in,およびHiRDB XML Extensionでは,単純文字列としての検索タームおよび種文章のほか,検索タームを展開したり,重みを設定したりする指定ができます。

edmSQLでは,これらの指定は全文検索を実行する関数の引数として指定します。これらの関数は,HiRDB Text Search Plug-in,またはHiRDB XML Extensionで提供されている関数と対応しています。指定方法については,マニュアル「HiRDB Text Search Plug-in」,または「HiRDB XML Extension」を参照してください。

ここでは,全文検索条件に指定できる機能の概要について説明します。

(a) 検索タームの異表記を検索対象にした検索(異表記展開指定)

異なる表記方法で表記された検索タームを含む文書も検索条件に指定できる検索です。

異表記展開を指定した場合は,検索タームに指定したかたかなの異表記を含む文書を検索したり,全角アルファベットの大文字・小文字の異表記を含む文書を検索したり,アルファベットの全角・半角の異表記を含む文書を検索したりできます。例えば,検索ターム「バイオリン」を検索する場合に,「ヴァイオリン」のように表記されている文書も検索できます。また,検索ターム「Ski」を検索する場合に,「ski」や「Ski」のように表記されている文書も検索できます。

異表記展開検索では,データベースで決められた規則に従って,検索タームの異表記を含む文書を検索します。

(b) 検索タームの同義語を検索対象にした検索(同義語展開指定)

検索タームと同じ意味を持つ単語(同義語)を含む文書も検索条件に指定できる検索です。

例えば,検索ターム「Ski」を検索する場合に,「スキー」を含む文書も一緒に検索できます。同義語展開検索では,あらかじめ作成してある同義語辞書を基に,検索タームの同義語を含む文書を検索します。

(c) 複数の検索ターム間の距離条件や出現順序を指定した検索(近傍条件指定)

複数の検索タームを指定した場合に,検索タームが出現する距離(文字数)を検索条件に指定できる検索です。

例えば,「『最新』と『技術』という検索タームを含み,これらの二つの単語が10文字以内に存在する文書」などが検索できます。この場合には,「最新印刷技術」や「最新の技術」などの文字列を含む文書が検索されます。

(d) 検索タームに重みを付ける検索(重み指定

検索タームに重み(重要度)を付ける検索です。重みを付けた検索とは,「『インターネット』および『データベース』が含まれる文書が検索したい。ただし,『インターネット』をより多く含む文書から取り出したいので,『インターネット』に『5』,『データベース』に『2』の重みを付けて検索する」のように指定する検索です。