1.1.10 検索機能

DocumentBrokerで使用できる検索機能について説明します。

<この項の構成>
(1) 属性検索機能
(2) 文書に対する全文検索機能
(3) 文字列型プロパティに対する全文検索機能
(4) 検索条件の論理演算機能

(1) 属性検索機能

オブジェクトに設定されているプロパティの値を条件にした検索を実行できる,属性検索機能を提供します。プロパティの値を基に,文書,フォルダ,インデクスに相当するオブジェクトなどが検索できます。例えば,文書名と著者がプロパティとして設定されている場合に,「文書名が『報告書』であり,著者が『日立太郎』である文書を検索する」というような検索ができます。

(2) 文書に対する全文検索機能

文書の内容に含まれるキーワード(検索ターム)を条件にした検索を実行できる,全文検索機能を提供します。

DocumentBrokerは,次のプログラムを利用して全文検索機能を実現します。

さらに,次のプログラムを利用することによって,HiRDB Text Search Plug-in,またはHiRDB XML Extensionの機能を拡張した検索機能を実現します。

全文検索機能では,文書中の任意の検索タームを条件にできます。例えば,「テキスト内に『Document』と『Text』という単語が含まれる文書を検索する」という場合に使用できます。

次に,全文検索機能の基本機能と拡張機能について説明します。なお,このマニュアルでは,これらの検索機能を総称して,全文検索といいます。それぞれの検索に固有の説明をする場合は,それぞれの機能名で説明します。

基本機能
HiRDB Text Search Plug-in,またはHiRDB XML Extensionの機能を使用した検索機能です。
  • 同義語・異表記展開検索
    検索タームとして「コンピュータ」を指定した場合,「PC」や「パソコン」といった検索タームの同義語に相当する単語を含む文書も検索できます(同義語展開検索)。
    アルファベットの大文字と小文字,かたかなの異表記および半角と全角の文字列を展開して,検索できます。例えば,「ski」を検索タームに指定する場合,「ski」,「SKI」,「Ski」などで表記されている文書も検索できます(異表記展開検索)。
  • 近傍条件検索
    二つの検索タームについて,それらの距離や出現順序関係を指定した検索ができます。例えば,「『最新』と『情報』の間の文字数が20文字ちょうどの文書を検索する。ただし,『最新』と『情報』はどちらが先に出現してもよい」という指定ができます。
拡張機能
ほかのプログラムの機能によってHiRDB Text Search Plug-in,またはHiRDB XML Extensionの機能を拡張した検索機能です。
  • 概念検索
    全文検索では,指定する検索タームに適した具体的な単語が思いつかない場合に,検索したい文書に類似した概念を持つ文章(種文章)を検索条件とした検索もできます。これを,概念検索といいます。概念検索では,検索条件として指定した文書からその文書を特徴づける単語(特徴ターム)が抽出され,それを検索タームとした検索が実行されます。例えば,「『…リサイクルは,資源の有効活用に貢献するだけでなく,ゴミの減量化にも役立ちます…』という文章に近い概念の文書を検索する」という場合に使用できます。概念検索機能を使用するためには,HiRDB Text Search Plug-in,またはHiRDB XML Extensionの機能のほかに,HiRDB Text Search Plug-in Conceptual Extensionが必要です。

(3) 文字列型プロパティに対する全文検索機能

オブジェクトに設定されている文字列型プロパティの値に含まれるキーワード(検索ターム)を条件にした検索を実行できる,全文検索機能を提供します。全文検索機能を使用できる文字列型プロパティのことを全文検索機能付き文字列型プロパティといいます。

DocumentBrokerは,次のプログラムを利用して文字列型プロパティに対する全文検索機能を実現します。

HiRDB Text Search Plug-in,またはHiRDB XML Extensionを利用すると,次に示す機能を使用できます。

文字列型プロパティに対する全文検索機能に対応したDocumentBrokerクラスライブラリのインターフェースおよびメソッドについては,マニュアル「DocumentBroker Version 5 概説」を参照してください。

(4) 検索条件の論理演算機能

検索条件同士の論理積や論理和などを求める機能も提供します。

AND検索
検索条件同士の論理積を求められます。例えば,「著者が『日立太郎』で,文書中に『コンピュータ』という文字列を含む文書を検索する」というような場合に使用できます。
OR検索
検索条件同士の論理和を求めることができます。例えば,「作成者が『日立太郎』である文書,または作成者の所属が『日立製作所』である文書を検索する」というような場合に使用できます。
NOT検索
検索条件との不一致を求めることができます。例えば,「作成者が『日立太郎』ではない文書を検索する」というような場合に使用できます。