Bibliotheca21 Development Kit for ASPを使用して作成したUAPから検索する場合,検索の条件はUAPから指定します。UAPから指定された検索条件は,UAP内でTS2MFIND関数またはTS2MCONCEPT関数のパラメータの条件式として受け取られ,Bibliotheca21 Standardのサーバに発行されます。
(1) 検索タームを指定した検索
(a) 検索タームを1語指定した検索
「『最新技術』という単語を含む文書」を検索する場合は,『最新技術』が検索タームになります。
検索タームには,ワイルドカードや特殊文字も指定できます。検索タームに指定できるワイルドカードおよび特殊文字を,表2-1に示します。
表2-1 検索タームに指定できるワイルドカードおよび特殊文字
種 類 | 意 味 | 指定例 | 検索結果の例 |
---|---|---|---|
* | 0文字以上の任意の文字列に相当する | 文書*検索 | 文書と記事を検索 文書の検索 |
? | 任意の1文字に相当する。?を続けて記述すると,続けた分だけの文字列に相当する | 概要?検索 | 概要と検索 概要の検索 |
??システム | 管理システム 昔のシステム | ||
| | 指定した文字列を構造の先頭または末尾に含むことに相当する。 文字列を囲んで指定した場合は,指定した文字列だけを構造内に含むことに相当する | |大阪府 | 大阪府大阪市 大阪府で開催 |
|株式会社| | 株式会社 | ||
¥ | ワイルドカードまたは特殊文字の意味を消して,通常の文字と同様に検索する場合に使用する(エスケープ文字) | ¥*高速¥?システム | *高速?システム |
(b) 検索タームを複数個指定した検索
検索条件には,検索タームを複数個指定できます。例えば,「『最先端技術』および『パソコン』の両方の単語が含まれる文書」を検索できます。この例では,検索ターム同士の論理積(AND条件)を検索の条件にしています。また,論理和(OR条件)を検索条件にして,「『最先端技術』または『パソコン』のうち,どちらかを含む文書」を検索できます。
検索タームを複数個指定する場合は,重み(重要度)も付けられます。例えば,上記の例で「『最先端技術』に重みを付けて検索したい」という検索ができます。重みについては,「(8)重み(重要度)を付けた検索」を参照してください。
(c) 検索ターム間の文字数を条件にした検索
二つの検索ターム間の文字数(距離)を検索条件にできます。例えば,「『最新』と『技術』の間の文字数が20文字ちょうどの文字列を含む文書」を検索できます。このような検索を近傍条件検索といいます。
(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 同義語・異表記の展開例
展開モード | 検索ターム | 展開結果の例 |
---|---|---|
同義語展開 | PC | PC,コンピューター,パソコン※ |
かたかな異表記展開 | バイオリン | ヴアイオリン,ヴアイォリン,ヴアィオリン,ヴアィォリン,ヴァイオリン,ヴァイォリン,ヴァィオリン,ヴァィォリン,バイオリン,バイォリン,バィオリン,バィォリン |
アルファベット異表記展開 | DOC | Doc,DOC,doc |
全角・半角異表記展開 | Text | Text,Text |
![]() | ![]() |
注※ あらかじめ同義語辞書に,「PC」の同義語が「コンピューター」「パソコン」であると定義する必要があります。
(4) 検索対象の文書
検索の対象にする文書の集合をベースといいます。ベースとして,テキストデータベースに格納されているすべての文書または検索結果集合を選択できます。
ベースは,ハイアラーキサーチとユニバースサーチの2種類の方法で設定します。ハイアラーキサーチは,1回目の検索結果を自動的に2回目のベースとし,さらに2回目の検索結果を3回目のベースとする,という繰り返しで検索を続け,結果を絞り込む方法です。これに対して,自動的に絞り込みをしないで,ベースを固定して検索する方法をユニバースサーチといいます。例えば,テキストデータベースに格納されているすべての文書を常にベースにして検索する場合は,ユニバースサーチを選択します。
なお,ベースの設定は,TS2MFIND関数で指定します。
(5) 論理演算検索
検索条件式同士や検索結果同士の論理演算を条件にする検索を,論理演算検索といいます。例えば,「『条件Aで検索した結果』および『条件Bで検索した結果』で,両方の検索結果に含まれる文書」を検索できます。この例では,検索結果同士の論理積(AND条件)を検索条件にしています。さらに,論理和(OR条件)を検索の条件にして,「『条件Aで検索した結果』または『条件Bで検索した結果』のうち,どちらかの検索結果に含まれる文書」を検索できます。これらの論理演算検索の条件は,TS2 MFIND関数のオプションの複合条件式に指定します。
なお,複合条件式に検索条件式を複数指定する場合は,重み(重要度)を付けられます。重みについては,「(8)重み(重要度)を付けた検索」を参照してください。
(6) 構造名を指定した検索
SGML文書などの構造化された文書を格納するテキストデータベースを,構造文書用テキストデータベースといいます。例えば,「文書・章・節」という構造で定義された文書を格納する構造文書用テキストデータベースがあるとします。このテキストデータベースは,「節の中に『SGML』という単語を含む文書」のように,構造を条件にして検索できます。
(a) 複数の構造を指定した検索
複数の構造の論理演算を検索の条件にできます。例えば,「章題および本文の中に『SGML』という単語を含む文書」を検索できます。
(b) 繰り返し構造に対する検索
章,節などのように繰り返し現れる構造に対して条件を指定できます。例えば,章が1章,2章…と繰り返している場合,章ごとに検索され,そのうちのどれかの章で条件を満たした文書がヒットします。
例えば,「章の中に『全文検索』を含む文書」を検索条件にします。この場合,「1章の中に『全文検索』を含む文書」や「3章の中に『全文検索』を含む文書」などがヒットします。「章の中に『全文検索』および『テキストサーチ』を含む文書」を検索条件にした場合,「全文検索」および「テキストサーチ」が同じ章の中にある文書がヒットします。
(c) 特定の構造に対する検索
特定の構造を検索条件にして指定できます。この場合は,TS2MFIND関数のオプションの特定構造検索条件式に記述します。
次に示す構造を持つ文書を例に,特定構造検索条件式を説明します。
例えば,「章見出しに『A』を含み,章の本文に『B』を含む文書を検索する。ただし,『A』および『B』は同じ章の中に存在すること」を検索条件にしたとします。「同じ章の中に存在する」という条件は,章という特定の構造を条件にしています。この場合,文書Yの章-1が条件に該当するため,文書Yがヒットします。
また,構造を特定しないで,「章見出しに『A』を含み,章の本文に『B』を含む文書」と指定するとします。この場合,文書Yと,章-1の章見出しに「A」を含み,章-2の本文に「B」を含む文書Xもヒットします。
(d) タグ属性に対する検索
SGML文書の構造を表したタグ属性を条件にして検索できます。例えば「属性"security"の値が"secret"である文書」などを検索できます。
(7) ランキング検索
(a) ランキング検索とは
「『インターネット』および『検索システム』が含まれる文書を検索したい。ただし,これらの単語が出現する回数の多い文書から取り出したい」という場合があります。このような場合は,ランキング検索を使用します。
ヒットした文書にスコア(得点)を付けてランクを付けることをランキングといいます。上記の例では,「インターネット」および「検索システム」の出現数が多い文書に高いスコアが付けられます。付けられたスコアの高い順番に検索結果をソートして,結果を取り出すこともできます。
(b) ランキング検索でのスコアの算出
スコアは,ヒットした文書に対して1~100の範囲で与えられます。検索タームを指定した検索では,指定した検索タームの出現数が多い文書ほど高いスコアが与えられます。
例えば,次の文書で検索タームをAとしてランキング検索すると,検索タームAを多く含む文書Xの方に,文書Yよりも高いスコアが付与されます。
図2-2 ランキング検索でのスコアの算出(検索ターム同士の論理演算検索の場合)に使用する例題
表2-3 ランキング検索でのスコアの算出方法(検索ターム同士の論理演算検索の場合)
検索条件 | スコアの算出方法 | 説 明 | スコアリングの例 | |
---|---|---|---|---|
BOOLEAN方式 | 論理積 (fand条件) | 演算対象(検索ターム)の文書内での各出現数のうち,最小値を基にスコアが付けられる | 「AおよびBが含まれる文書」を検索した結果,文書内での出現数がAの方が多かった場合,Bの出現数を基にスコアが付けられる | 図2-2で「AおよびBが含まれる文書」を検索すると,文書Xのスコアは50,文書Yのスコアは100となる |
論理和 (for条件) | 演算対象(検索ターム)の文書内での各出現数のうち,最大値を基にスコアが付けられる | 「AまたはBが含まれる文書」を検索した結果,文書内での出現数としてAの方が多かった場合,Aの出現数を基にスコアが付けられる | 図2-2で「AまたはBが含まれる文書」を検索すると,文書Xのスコアは100,文書Yのスコアは75となる | |
スコア総和方式 | 論理積および論理和 (fand条件およびfor条件) | 演算対象(検索ターム)の文書内でのそれぞれの出現数の合計値を基にスコアが付けられる | 「AおよびBが含まれる文書」,または「AまたはBが含まれる文書」の検索でヒットした文書内のAとBの出現数の合計を基にスコアが付けられる | 図2-2で「AおよびBが含まれる文書」または「AまたはBが含まれる文書」を検索すると,文書Xのスコアは100,文書Yのスコアは100となる |
(凡例)
A:検索ターム「A」
B:検索ターム「B」
注 ここでの算出方法は,検索タームに重みが付けられていないことが前提です。検索タームに重みが付けられている場合は,算出結果が異なります。
図2-3 ランキング検索でのスコアの算出(近傍条件検索の場合)に使用する例題
表2-4 ランキング検索でのスコアの算出方法(近傍条件検索の場合)
検索条件 | スコアの算出方法 | 説 明 | スコアリングの例 |
---|---|---|---|
二つの検索タームの間の距離(文字数)が指定した値と一致することを条件にする (例) FindFile: c=10('X','Y') | 指定した距離とヒットした距離が等しい場合は,100が与えられる | 「XY間の距離が10文字ちょうどの文書」を検索した結果,文書内でのXとYの距離が10であれば100が与えられる | 図2-3で「XY間の距離が10文字ちょうどの文書」を検索すると,文書Dだけがヒットする。スコアは100となる |
二つの検索タームの間の距離(文字数)が指定した値以下であることを条件にする (例) FindFile: c<=10('X','Y') | ヒットした距離が0に近いほど100に近付く | 「XY間の距離が10文字以下の文書」を検索した結果,文書内でのXYの距離が0ならば100が与えられる。10以下の値は,10に近いほど低いスコアが与えられる | 図2-3で「XY間の距離が10文字以下の文書」を検索すると,文書A,B,CおよびDがヒットする。スコアの高い順に,文書A,B,C,Dとなる |
二つの検索ターム間の距離(文字数)が指定した値以上であることを条件にする (例) FindFile: c>=10('X','Y') | 指定した距離とヒットした距離が等しい場合は,100が与えられる。遠ざかるほど低くなる | 「XY間の距離が10文字以上の文書」を検索した結果,文書内でのXYの距離が10ならば100が与えられる。10を超える値は,10から遠いほど低いスコアが与えられる | 図2-3で「XY間の距離が10文字以上の文書」を検索すると,文書D,EおよびFがヒットする。スコアの高い順に,文書D,E,Fとなる |
(凡例)
X:検索ターム「X」
Y:検索ターム「Y」
図2-4 ランキング検索でのスコアの算出(検索条件式同士の論理演算検索の場合)に使用する例題
表2-5 ランキング検索でのスコアの算出方法(検索条件式同士の論理演算検索の場合)
検索条件 | スコアの算出方法 | 説 明 | スコアリングの例 | |
---|---|---|---|---|
BOOLEAN方式 | 論理積 (AND条件) | 演算対象(検索条件)の文書内で,各出現数のうち,最小値を基にスコアが付けられる | 「AおよびBが含まれる文書」を検索した結果,文書内での出現数がAの方が多かった場合,Bの出現数を基にスコアが付けられる | 図2-4で「AおよびBが含まれる文書」を検索すると,文書Xのスコアは50,文書Yのスコアは100となる |
論理和 (OR条件) | 演算対象(検索条件)の文書内での各出現数のうち,最小値を基にスコアが付けられる | 「AまたはBが含まれる文書」を検索した結果,文書内での出現数がAの方が多かった場合,Aの出現数を基にスコアが付けられる | 図2-4で「AまたはBが含まれる文書」を検索すると,文書Xのスコアは100,文書Yのスコアは75となる | |
スコア総和方式 | 論理積および論理和 (AND条件およびOR条件) | 演算対象(検索条件)の文書内でのそれぞれの出現数の合計値を基にスコアが付けられる | 「AおよびBが含まれる文書」,または「AまたはBが含まれる文書」の検索でヒットした文書内のAとBの出現数の合計を基にスコアが付けられる | 図2-4で「AおよびBが含まれる文書」または「AまたはBが含まれる文書」を検索すると,文書Xのスコアは100,文書Yのスコアは100となる |
(凡例)
A:検索条件A
B:検索条件B
注 ここでの算出方法は,検索条件式の構造に重みが付けられていないことが前提です。構造に重みが付けられている場合は,算出結果が異なります。
(8) 重み(重要度)を付けた検索
「『インターネット』および『検索システム』を含む文書を検索したい。ただし,『検索システム』に重みを付けて検索したい」という場合があります。重み(重要度)は複数の検索タームを指定する場合,重要度を高くしたい方の単語に付けます。上記の例で,「検索システム」に「10」,「インターネット」に「1」の割合で重みを付けたとします。この場合,「検索システム」は「インターネット」の10倍の重みが付けられます。ランキング検索の指定時,重みを付けた検索タームはより高いスコアが付けられます。
ただし,論理積を条件にして重みを付けた場合,重み付けとは関係なくスコアが付与される場合があります(表2-3参照)。したがって,論理積を条件にして重みを付ける場合は,極端な配分にならないように注意してください。
重みは検索タームのほか,検索対象にする構造にも付けられます。
(9) 検索結果のソート
(1)~(8)で説明した検索方法で文書を取得する場合,文書IDの昇順(ランキング検索のSORTオプション指定時は除く)にソートされます。検索結果のソートは,この文書IDの順番を,関連情報ファイルに登録されているテキストデータをキーにして,昇順または降順に並び替える機能です。この機能を使うと,例えば,検索対象ファイルに書籍情報が登録されていて,関連情報ファイルにその書籍の発行日が登録されている場合,「作者名で検索し,その書籍の発行順で取得する」といった検索が実行できます。
(10) 文章の概念を手がかりとした検索
例えば,漠然としたイメージだけがあって適切なキーワードが思いつかない場合があります。概念検索はこのような場合に利用します。
概念検索では,ユーザが任意に指定した文章や文字列を手がかりにして,その条件と似た概念を持つ文書を検索します。例えば,「『近年,環境保護に関する対策に力を入れている自治体が増えている』という概念を持つ文書を探す」などの検索ができます。
概念検索の検索条件に指定する文章を,種文章といいます。概念検索では,初めに種文章を特徴づける単語が,種文章から抽出されます。この単語を特徴タームといいます。次に,抽出された特徴タームの中から,種文章の概念を表す(実際の検索に使用する)タームが選出されます。ここで選出された特徴タームを検索用特徴タームといいます。
検索用特徴タームの抽出には,テキストデータベース内の統計情報を使用します。検索用特徴タームは,次の優先順位に従って種文章から抽出されます。
上記の優先順位に従って抽出された検索用特徴タームを基に,テキストデータベース内の文書が検索されます。
概念検索の概要を次の図2-5に示します。
図2-5 概念検索の概要
Bibliotheca21 Standardでは,次の概念検索を実行できます。
(a) 種文章を複数指定する検索
検索条件には,種文章を複数個指定できます。例えば,「近年,環境保護に関する対策に力を入れている自治体が増えている」という文章と「リサイクルは,資源の有効活用に寄与するだけではなく,ゴミの減量化にも効果が期待できる」という文章を種文章として指定し,それぞれの概念の和で表される仮想的な種文章に似た概念を持つ文書を検索できます。
(b) 同義語・異表記展開検索
概念検索での同義語展開検索では,同義語辞書での定義に基づいて,検索用特徴タームの同義語が自動的に展開されます。概念検索での異表記展開検索では,Bibliotheca21 Standardでのルールに基づいて,自動的に検索用特徴タームの異表記が展開されます。展開された同義語・異表記は,検索用特徴タームとあわせて検索条件となります。
(c) 論理演算検索
概念検索での論理演算検索は,例えば,『近年,環境保護に関する対策に力を入れている自治体が増えている』という文章と似た概念を持つ文書を検索した結果と,『リサイクルは,資源の有効活用に寄与するだけではなく,ゴミの減量化にも効果が期待できる』という文章と似た概念を持つ文書を検索した結果の両方に含まれる文書を検索できます。この例では,検索条件同士の論理積(AND条件)を検索条件にしています。
また,論理和(OR条件)を検索の条件にして,『近年,環境保護に関する対策に力を入れている自治体が増えている』という文章と似た概念を持つ文書を検索した結果と,『リサイクルは,資源の有効活用に寄与するだけではなく,ゴミの減量化にも効果が期待できる』という文章と似た概念を持つ文書を検索した結果のどちらかに含まれる文書を検索することもできます。
(d) 構造名を指定した検索
構造化文書を格納した表の列を検索対象とする場合は,その表の構造化文書を格納した列に定義された文書の構造を検索条件として利用できます。例えば,「文書・章・節・項」という構造を持つ文書を格納する列があるとします。この列に対しては,「節の中に『近年,環境保護に関する対策に力を入れている自治体が増えている』という文章と似た概念を持つ文書」のように,構造を条件にして検索できます。
(e) スコア検索
概念検索の結果文書に,種文章の概念に対する適合度から算出した得点(スコア)を付けます。適合度が高い文書ほど得点が高くなります。
スコア算出時には,例えば,「種文章を100点として,相対的な値に得点を調整する(スコアを正規化する)」,「一定のスコア以上の文書だけを検索結果とする」などの指定もできます。
(f) 検索用特徴ターム出力
検索条件として指定した種文章から抽出される,検索用特徴タームを出力します。概念検索では,これらの特徴タームから検索結果の妥当性を判断します。
(g) 検索タームによる絞り込み検索
概念検索で文書を抽出しておき,その抽出結果に対して検索タームで絞り込むという,概念検索と全文検索の長所を利用した検索を実現できます。この機能を利用することで,概念検索結果が散漫になることを防止できます。