2.1.2 検索の条件の指定

Bibliotheca21 Development Kit for ASPを使用して作成したUAPから検索する場合,検索の条件はUAPから指定します。UAPから指定された検索条件は,UAP内でTS2MFIND関数またはTS2MCONCEPT関数のパラメータの条件式として受け取られ,Bibliotheca21 Standardのサーバに発行されます。

<この項の構成>
(1) 検索タームを指定した検索
(2) 範囲を指定した検索
(3) 同義語・異表記展開検索
(4) 検索対象の文書
(5) 論理演算検索
(6) 構造名を指定した検索
(7) ランキング検索
(8) 重み(重要度)を付けた検索
(9) 検索結果のソート
(10) 文章の概念を手がかりとした検索

(1) 検索タームを指定した検索

(a) 検索タームを1語指定した検索

「『最新技術』という単語を含む文書」を検索する場合は,『最新技術』が検索タームになります。

参照例:
検索タームを1語指定した例:表2-6の項番1

検索タームには,ワイルドカード特殊文字も指定できます。検索タームに指定できるワイルドカードおよび特殊文字を,表2-1に示します。

表2-1 検索タームに指定できるワイルドカードおよび特殊文字

種 類意 味指定例検索結果の例
*0文字以上の任意の文字列に相当する文書*検索文書と記事を検索
文書検索
?任意の1文字に相当する。?を続けて記述すると,続けた分だけの文字列に相当する概要?検索概要検索
概要検索
??システム管理システム
昔のシステム
|指定した文字列を構造の先頭または末尾に含むことに相当する。
文字列を囲んで指定した場合は,指定した文字列だけを構造内に含むことに相当する
|大阪府大阪府大阪市
大阪府で開催
|株式会社|株式会社
¥ワイルドカードまたは特殊文字の意味を消して,通常の文字と同様に検索する場合に使用する(エスケープ文字)¥*高速¥?システム*高速?システム
参照例:
ワイルドカードを指定した例:表2-6の項番3~5

(b) 検索タームを複数個指定した検索

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

検索タームを複数個指定する場合は,重み(重要度)も付けられます。例えば,上記の例で「『最先端技術』に重みを付けて検索したい」という検索ができます。重みについては,「(8)重み(重要度)を付けた検索」を参照してください。

参照例:
検索タームの論理積を指定した例:表2-6の項番6
検索タームの論理和を指定した例:表2-6の項番9

(c) 検索ターム間の文字数を条件にした検索

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

参照例:
近傍条件検索の例:表2-6の項番10~13

(2) 範囲を指定した検索

例えば,2001年1月以降に作成した文書を検索したいなど,ある範囲内の文書を検索したい場合があります。範囲指定検索は,このような場合に利用します。

範囲指定検索では,日時や数字などの前後関係のあるテキストデータを検索タームに指定します。このとき,『AからB』という指定だけでなく,『A以降』または『B以前』という条件も指定できます。

参照例:表2-9の項番1~3

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

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

同義語・異表記展開検索を使用するには,あらかじめ同義語辞書を作成し,テキストデータベースに登録しておく必要があります。同義語辞書を作成および登録する方法については,マニュアル「Bibliotheca21 Version 2 Light/Standard」を参照してください。

同義語・異表記展開検索では,同義語辞書での定義に基づいて,検索タームの同義語が自動的に展開されます。さらに,Bibliotheca21 Standardでのルールに基づいて検索タームの異表記が自動的に展開されます。展開された同義語・異表記は,検索タームと併せて検索条件にできます。

展開方法には次の4種類があり,これらを展開モードといいます。展開モードは組み合わせて検索条件にできます。

同義語・異表記の展開例を,表2-2に示します。

表2-2 同義語・異表記の展開例

展開モード検索ターム展開結果の例
同義語展開PCPC,コンピューター,パソコン
かたかな異表記展開バイオリンヴアイオリン,ヴアイォリン,ヴアィオリン,ヴアィォリン,ヴァイオリン,ヴァイォリン,ヴァィオリン,ヴァィォリン,バイオリン,バイォリン,バィオリン,バィォリン
アルファベット異表記展開DOCDoc,DOC,doc
全角・半角異表記展開TextText,Text
[図データ] [図データ] 

注※ あらかじめ同義語辞書に,「PC」の同義語が「コンピューター」「パソコン」であると定義する必要があります。


参照例:
同義語検索の例:表2-6の項番14

(4) 検索対象の文書

検索の対象にする文書の集合をベースといいます。ベースとして,テキストデータベースに格納されているすべての文書または検索結果集合を選択できます。

ベースは,ハイアラーキサーチとユニバースサーチの2種類の方法で設定します。ハイアラーキサーチは,1回目の検索結果を自動的に2回目のベースとし,さらに2回目の検索結果を3回目のベースとする,という繰り返しで検索を続け,結果を絞り込む方法です。これに対して,自動的に絞り込みをしないで,ベースを固定して検索する方法をユニバースサーチといいます。例えば,テキストデータベースに格納されているすべての文書を常にベースにして検索する場合は,ユニバースサーチを選択します。

なお,ベースの設定は,TS2MFIND関数で指定します。

(5) 論理演算検索

検索条件式同士や検索結果同士の論理演算を条件にする検索を,論理演算検索といいます。例えば,「『条件Aで検索した結果』および『条件Bで検索した結果』で,両方の検索結果に含まれる文書」を検索できます。この例では,検索結果同士の論理積AND条件)を検索条件にしています。さらに,論理和OR条件)を検索の条件にして,「『条件Aで検索した結果』または『条件Bで検索した結果』のうち,どちらかの検索結果に含まれる文書」を検索できます。これらの論理演算検索の条件は,TS2 MFIND関数のオプションの複合条件式に指定します。

なお,複合条件式に検索条件式を複数指定する場合は,重み(重要度)を付けられます。重みについては,「(8)重み(重要度)を付けた検索」を参照してください。

参照例:
検索条件式同士の論理積を指定した例:表2-7の項番1
検索条件式同士の論理和を指定した例:表2-7の項番4
検索結果同士の論理積を指定した例:表2-7の項番5

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

SGML文書などの構造化された文書を格納するテキストデータベースを,構造文書用テキストデータベースといいます。例えば,「文書・章・節」という構造で定義された文書を格納する構造文書用テキストデータベースがあるとします。このテキストデータベースは,「節の中に『SGML』という単語を含む文書」のように,構造を条件にして検索できます。

参照例:
構造名を指定した例:表2-6の項番2,4

(a) 複数の構造を指定した検索

複数の構造の論理演算を検索の条件にできます。例えば,「章題および本文の中に『SGML』という単語を含む文書」を検索できます。

参照例:
複数の構造を指定した例:表2-7の項番2

(b) 繰り返し構造に対する検索

章,節などのように繰り返し現れる構造に対して条件を指定できます。例えば,章が1章,2章…と繰り返している場合,章ごとに検索され,そのうちのどれかの章で条件を満たした文書がヒットします。

例えば,「章の中に『全文検索』を含む文書」を検索条件にします。この場合,「1章の中に『全文検索』を含む文書」や「3章の中に『全文検索』を含む文書」などがヒットします。「章の中に『全文検索』および『テキストサーチ』を含む文書」を検索条件にした場合,「全文検索」および「テキストサーチ」が同じ章の中にある文書がヒットします。

参照例:
繰り返し構造を指定した例:表2-6の項番15

(c) 特定の構造に対する検索

特定の構造を検索条件にして指定できます。この場合は,TS2MFIND関数のオプションの特定構造検索条件式に記述します。

次に示す構造を持つ文書を例に,特定構造検索条件式を説明します。

[図データ]

例えば,「章見出しに『A』を含み,章の本文に『B』を含む文書を検索する。ただし,『A』および『B』は同じ章の中に存在すること」を検索条件にしたとします。「同じ章の中に存在する」という条件は,章という特定の構造を条件にしています。この場合,文書Yの章-1が条件に該当するため,文書Yがヒットします。

参照例:
特定の構造を指定した例:表2-7の項番6

また,構造を特定しないで,「章見出しに『A』を含み,章の本文に『B』を含む文書」と指定するとします。この場合,文書Yと,章-1の章見出しに「A」を含み,章-2の本文に「B」を含む文書Xもヒットします。

参照例:
複数の構造を指定した例:表2-7の項番2

(d) タグ属性に対する検索

SGML文書の構造を表したタグ属性を条件にして検索できます。例えば「属性"security"の値が"secret"である文書」などを検索できます。

参照例:
タグ属性を指定した例:表2-6の項番16

(7) ランキング検索

(a) ランキング検索とは

「『インターネット』および『検索システム』が含まれる文書を検索したい。ただし,これらの単語が出現する回数の多い文書から取り出したい」という場合があります。このような場合は,ランキング検索を使用します。

ヒットした文書にスコア(得点)を付けてランクを付けることをランキングといいます。上記の例では,「インターネット」および「検索システム」の出現数が多い文書に高いスコアが付けられます。付けられたスコアの高い順番に検索結果をソートして,結果を取り出すこともできます。

参照例:
ランキング検索を指定した例:表2-6の項番7

(b) ランキング検索でのスコアの算出

スコアは,ヒットした文書に対して1~100の範囲で与えられます。検索タームを指定した検索では,指定した検索タームの出現数が多い文書ほど高いスコアが与えられます。

例えば,次の文書で検索タームをAとしてランキング検索すると,検索タームAを多く含む文書Xの方に,文書Yよりも高いスコアが付与されます。

[図データ]

(8) 重み(重要度)を付けた検索

「『インターネット』および『検索システム』を含む文書を検索したい。ただし,『検索システム』に重みを付けて検索したい」という場合があります。重み(重要度)は複数の検索タームを指定する場合,重要度を高くしたい方の単語に付けます。上記の例で,「検索システム」に「10」,「インターネット」に「1」の割合で重みを付けたとします。この場合,「検索システム」は「インターネット」の10倍の重みが付けられます。ランキング検索の指定時,重みを付けた検索タームはより高いスコアが付けられます。

ただし,論理積を条件にして重みを付けた場合,重み付けとは関係なくスコアが付与される場合があります(表2-3参照)。したがって,論理積を条件にして重みを付ける場合は,極端な配分にならないように注意してください。

重みは検索タームのほか,検索対象にする構造にも付けられます。

参照例:
検索タームに重みを付けて指定した例:表2-6の項番8
構造に重みを付けて指定した例:表2-7の項番3

(9) 検索結果のソート

(1)~(8)で説明した検索方法で文書を取得する場合,文書IDの昇順(ランキング検索のSORTオプション指定時は除く)にソートされます。検索結果のソートは,この文書IDの順番を,関連情報ファイルに登録されているテキストデータをキーにして,昇順または降順に並び替える機能です。この機能を使うと,例えば,検索対象ファイルに書籍情報が登録されていて,関連情報ファイルにその書籍の発行日が登録されている場合,「作者名で検索し,その書籍の発行順で取得する」といった検索が実行できます。

参照例:
検索結果のソートの例:表2-10の項番1~2

(10) 文章の概念を手がかりとした検索

例えば,漠然としたイメージだけがあって適切なキーワードが思いつかない場合があります。概念検索はこのような場合に利用します。

概念検索では,ユーザが任意に指定した文章や文字列を手がかりにして,その条件と似た概念を持つ文書を検索します。例えば,「『近年,環境保護に関する対策に力を入れている自治体が増えている』という概念を持つ文書を探す」などの検索ができます。

概念検索の検索条件に指定する文章を,種文章といいます。概念検索では,初めに種文章を特徴づける単語が,種文章から抽出されます。この単語を特徴タームといいます。次に,抽出された特徴タームの中から,種文章の概念を表す(実際の検索に使用する)タームが選出されます。ここで選出された特徴タームを検索用特徴タームといいます。

検索用特徴タームの抽出には,テキストデータベース内の統計情報を使用します。検索用特徴タームは,次の優先順位に従って種文章から抽出されます。

上記の優先順位に従って抽出された検索用特徴タームを基に,テキストデータベース内の文書が検索されます。

概念検索の概要を次の図2-5に示します。

図2-5 概念検索の概要

[図データ]

参照例:
概念検索の事項例:表2-11の項番1~4

Bibliotheca21 Standardでは,次の概念検索を実行できます。

(a) 種文章を複数指定する検索

検索条件には,種文章を複数個指定できます。例えば,「近年,環境保護に関する対策に力を入れている自治体が増えている」という文章と「リサイクルは,資源の有効活用に寄与するだけではなく,ゴミの減量化にも効果が期待できる」という文章を種文章として指定し,それぞれの概念の和で表される仮想的な種文章に似た概念を持つ文書を検索できます。

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

概念検索での同義語展開検索では,同義語辞書での定義に基づいて,検索用特徴タームの同義語が自動的に展開されます。概念検索での異表記展開検索では,Bibliotheca21 Standardでのルールに基づいて,自動的に検索用特徴タームの異表記が展開されます。展開された同義語・異表記は,検索用特徴タームとあわせて検索条件となります。

(c) 論理演算検索

概念検索での論理演算検索は,例えば,『近年,環境保護に関する対策に力を入れている自治体が増えている』という文章と似た概念を持つ文書を検索した結果と,『リサイクルは,資源の有効活用に寄与するだけではなく,ゴミの減量化にも効果が期待できる』という文章と似た概念を持つ文書を検索した結果の両方に含まれる文書を検索できます。この例では,検索条件同士の論理積(AND条件)を検索条件にしています。

また,論理和(OR条件)を検索の条件にして,『近年,環境保護に関する対策に力を入れている自治体が増えている』という文章と似た概念を持つ文書を検索した結果と,『リサイクルは,資源の有効活用に寄与するだけではなく,ゴミの減量化にも効果が期待できる』という文章と似た概念を持つ文書を検索した結果のどちらかに含まれる文書を検索することもできます。

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

構造化文書を格納した表の列を検索対象とする場合は,その表の構造化文書を格納した列に定義された文書の構造を検索条件として利用できます。例えば,「文書・章・節・項」という構造を持つ文書を格納する列があるとします。この列に対しては,「節の中に『近年,環境保護に関する対策に力を入れている自治体が増えている』という文章と似た概念を持つ文書」のように,構造を条件にして検索できます。

(e) スコア検索

概念検索の結果文書に,種文章の概念に対する適合度から算出した得点(スコア)を付けます。適合度が高い文書ほど得点が高くなります。

スコア算出時には,例えば,「種文章を100点として,相対的な値に得点を調整する(スコアを正規化する)」,「一定のスコア以上の文書だけを検索結果とする」などの指定もできます。

(f) 検索用特徴ターム出力

検索条件として指定した種文章から抽出される,検索用特徴タームを出力します。概念検索では,これらの特徴タームから検索結果の妥当性を判断します。

(g) 検索タームによる絞り込み検索

概念検索で文書を抽出しておき,その抽出結果に対して検索タームで絞り込むという,概念検索と全文検索の長所を利用した検索を実現できます。この機能を利用することで,概念検索結果が散漫になることを防止できます。