3.14.1 全文検索の条件式
全文検索の条件式には,テキストデータベースを検索する条件を指定します。
- <この項の構成>
- (1) 形式
- (2) オプション
- (3) 指定例
(1) 形式
条件式〔,ランキングオプション〕
〔,検索オプション〔,検索オプション〕…〕
- 検索条件式
ファイル名〔構造名指定〔[構造重み値]〕〕:演算式
- 構造名指定
- <構造名〔.構造名〔.構造名〕…〕〔:属性名〕>
- 演算式
- 演算子(項〔〔,項〕…〕)
- 演算子
- {eq|fand|for|{c|C}{=|<=|>=}距離}
- 項
- {'検索ターム'〔[検索ターム重み値]〕|演算式}
- 複合条件式
複合論理演算子(要素〔〔,要素〕…〕)
- 複合論理演算子
{AND|OR|NOT}
- 要素
{SET(検索結果集合ID)|検索条件式|複合条件式|特定構造検索条件式}
- 特定構造検索条件式
SAND(ファイル名<特定構造名〔〔.特定構造名〕…〕>,検索条件式,検索条件式,〔〔,検索条件式〕…〕)
- ランキングオプション
RANK〔〔スコア算出方法〕〔論理演算指定時のスコア算出方法〕〔ランキング詳細指定〕〕
- スコア算出方法
- 〔COUNTS〕
- 論理演算指定時のスコア算出方法
- 〔BOOLEAN|TOTAL〕
- ランキング詳細指定
- 〔SCORE|SORT〔対象件数〔FORCE〕〕〕
- 検索オプション
〔EXPANS〔展開モード〕〕|〔BASE〔検索結果集合ID〕〕
- 展開モード
- 〔U〕〔k〕〔a〕〔e〕
(2) オプション
- 条件式
検索の条件を,次の形式で指定します。
検索条件式|複合条件式|特定構造検索条件式
- 検索条件式
検索条件式は,次の形式で記述します。
ファイル名〔構造名指定〔[構造重み値]〕〕:演算式
- ファイル名
- 検索対象ファイル名として,「BIB_FindFile」を指定します。
- 構造名指定
- 特定の構造を指定して検索する場合,構造名を指定します。構造名は,次の形式で指定します。
- <構造名〔.構造名〔.構造名〕…〕〔:属性名〕>
- 構造名
- 検索する構造名を指定します。
- 構造名は,テキストデータベースに登録された文書に存在する構造名だけを指定できます。したがって,DTDに指定されていても,文書に存在しない構造名を指定した場合は,エラーになります。
- 属性名
- 構造に指定された属性を条件にして検索する場合,構造に対する属性名を指定します。
- [構造重み値]
- 検索条件式中の構造に重み(重要度)を付ける場合に指定します。複合条件式を使って複数の検索条件式を記述する場合で,かつランキング機能を使用する場合に指定します。
- 構造重み値は,1~100の整数を[]で囲んで指定します。数値が大きいほど,重要度も上がります。省略した場合は1が仮定されます。
- 演算式
- 演算式は,次の形式で指定します。
- 演算子(項〔〔,項〕…〕)
- 演算子
- 次の演算子を指定します。
- eq
項に指定した検索タームを検索します。項には文字列だけを指定できます。
- fand
項同士の論理積を検索結果とします。したがって,すべての項が存在または成立することを条件にする場合に指定します。
fandを指定する場合は,二つ以上の項を指定してください。さらに,項には検索タームまたはeqを除く演算式を指定してください。
- for
項同士の論理和を検索結果とします。したがって,項の中で少なくとも一つが存在または成立することを条件にする場合に指定します。
forを指定する場合は,二つ以上の項を指定してください。さらに,項には検索タームまたはeqを除く演算式を指定してください。
- {c|C}{=|<=|>=}距離
項と項の間の文字列を条件にした検索(近傍条件検索)の場合に指定します。項は二つ指定してください。指定できる項は,検索タームまたは近傍条件を記述した演算式だけです。
なお,各演算子(c(またはC)と=(または<=および>=)と距離)の間に空白などを記述しないでください。
c
項の順序を条件にしない場合に指定します。
C
項の順序を条件にする場合に指定します。Cを指定すると,最初に指定した項に続いて,二つ目の項が現れることを条件にします。
=
項と項との間の文字列が,距離で指定する値と一致することを条件にする場合に指定します。
<=
項と項との間の文字列が,距離で指定する値以下であることを条件にする場合に指定します。
>=
項と項との間の文字列が,距離で指定する値以上であることを条件にする場合に指定します。
距離
項と項の間の文字数を0以上の整数で指定します。
- 項
- 検索の条件になる文字列(検索ターム)を指定します。検索タームの代わりに演算式を指定することもできます。
- 項は,次の形式で指定します。
- '検索ターム'〔[検索ターム重み値]〕|演算式
- 検索ターム
検索する文字列を’(アポストロフィ)で囲んで指定します。ただし,次に示す文字が検索タームに含まれる場合は,各文字の前に¥を指定してください。
* ? | ¥ ^ [ ] , ( ) ’
検索タームには,ワイルドカードおよび特殊文字を指定できます。ワイルドカードおよび特殊文字は,半角で指定してください。
指定できるワイルドカードおよび特殊文字の意味を次に示します。
*
0文字以上の任意の文字列に相当します。
?
任意の1文字に相当します。
|
構造の先頭または末尾に一致します。
¥
ワイルドカードまたは特殊文字の意味を消します。
- [検索ターム重み値]
検索タームに重み(重要度)を付ける場合に指定します。fand,forおよび近傍条件検索で複数の検索タームを記述する場合で,かつランキング機能を使用する場合に指定します。
検索ターム重み値は,1~100の整数を[]で囲んで指定します。数値が大きいほど,重要度も上がります。省略した場合は1が仮定されます。
- 複合条件式
検索結果同士の論理演算を検索条件とします。複合条件式は,次の形式で指定します。
複合論理演算子(要素〔〔,要素〕…〕)
- 複合論理演算子
- 要素または要素間の検索条件を指定します。次の複合論理演算子を指定します。
- AND
- 要素同士の論理積を検索結果とします。ANDを指定する場合は,二つ以上の要素を指定してください。
- OR
- 要素同士の論理和を検索結果とします。ORを指定する場合は,二つ以上の要素を指定してください。
- NOT
- 要素の排他(補集合)を検索結果とします。したがって,指定した要素以外の文書を検索する場合に指定します。
- 要素は一つ指定してください。NOTを指定した場合は,ランキングオプションは無視されます。
- 要素
- 検索の条件にする検索結果集合または条件式を指定します。要素は,次の形式で指定します。
- SET(検索結果集合ID)|検索条件式|複合条件式|特定構造検索条件式
- SET句を指定した要素と,条件式を指定した要素を混在して記述できません。さらに,SET句を指定した場合,次のオプションを指定しても無視されます。
- ランキングオプション
- BASE以外の検索オプション
- 検索結果集合ID
検索時に取得した検索結果集合IDを指定します。
- 特定構造検索条件式
複数の構造を対象として,指定した条件を満たす構造が,ある特定の構造に含まれるかどうかを検索する場合に指定します。特定構造検索条件式は,次の形式で指定します。
SAND(ファイル名<特定構造名〔〔.特定構造名〕…〕>,検索条件式,検索条件式,〔〔,検索条件式〕…〕)
- ファイル名
- 検索対象ファイルを指定します。
- 特定構造名
- 範囲を特定するための構造名を指定します。
- 特定構造名は,テキストデータベースに登録された文書に存在する構造名だけを指定できます。したがって,DTDに指定されていても,文書に存在しない構造名を指定した場合は,エラーになります。
- ランキングオプション
検索結果に重み(重要度)を付けて検索する場合に指定します。ランキングオプションは,次の形式で指定します。
RANK〔〔スコア算出方法〕〔論理演算時スコア算出方法〕〔ランキング詳細指定〕〕
- スコア算出方法
- ランキングのために与えるスコア(得点)の算出方法を指定します。スコア算出方法には,COUNTSを指定します。
- COUNTS
- ヒットした検索タームの数または成立した条件の数に基づいてスコアが付けられる方法です。
- 論理演算指定時のスコア算出方式
- 論理演算時のスコア算出方法を指定します。論理演算時のスコア算出方法は次の形式で指定します。この指定を省略した場合,BOOLEANが仮定されます。
- BOOLEAN|TOTAL
- BOOLEAN
- BOOLEAN方式でスコアの算出をします。検索条件が論理積のときは,演算対象(検索タームまたは検索条件)の文書内でのそれぞれの出現数のうち,最小値に基づいてスコアが付けられる方式です。検索条件が論理和のときは,演算対象の文書内でのそれぞれの出現数のうち,最大値に基づいてスコアが付けられる方式です。
- TOTAL
- スコア総和方式でスコアの算出をします。検索条件が論理積のときも論理和のときも,演算対象の文書内でのそれぞれの出現数の合計値に基づいてスコアが付けられる方式です。
- ランキング詳細指定
- ランキングの方法を指定します。ランキング詳細指定は,次の形式で指定します。
- SCORE|SORT〔対象件数〔FORCE〕〕
- SCORE
- スコアを算出する場合に指定します。
- SORT〔対象件数〔FORCE〕〕
- ヒット件数が対象件数に指定した値以下の場合は,算出されたスコアをキーとして降順にソートされます。対象件数を省略した場合は,1,000が仮定されます。
- FORCEを指定すると,ヒット件数が対象件数での値を超える場合でも降順にソートされ,上位から対象件数分の情報でランキングされます。
- FORCEが指定されていない場合にヒット件数が対象件数を超える場合は,ランキングされません。
- 対象件数に大きな値を指定したり,FORCEを指定したときにヒット件数が多かったりすると,処理時間が長くなりますので注意してください。
- 検索オプション
検索時の展開モードまたはベースを指定します。検索オプションを省略した場合は,展開モードにアルファベット異表記展開,および全角・半角異表記展開が指定されたものとして扱われます。
検索オプションには,EXPANS句またはBASE句を指定します。
- EXPANS〔展開モード〕
- 検索タームの展開モードを指定します。
- 展開モード
- 次の4種類を組み合わせて指定します。
- U
検索タームを同義語展開する場合に指定します。ただし,同義語辞書が設定されていない場合は,エラーになります。
- k
検索タームをかたかな異表記展開する場合に指定します。
- a
検索タームをアルファベット異表記展開する場合に指定します。
- e
検索タームを全角・半角異表記展開する場合に指定します。
- BASE〔検索結果集合ID〕
- 検索時のベースを指定します。
- 検索結果集合ID
- 検索のベースにする検索結果集合のIDを指定します。ここで指定した検索結果集合に含まれる文書が検索の対象になります。なお,0を指定すると,すべての文書が検索の対象になります。検索結果集合IDを省略すると,0が仮定されます。
(3) 指定例
- ファイル名「新聞記事」から,「社会」および「政治」という単語がどちらも存在する文書を検索する(検索条件式の記述例)
新聞記事:fand('社会','政治')
- 上記の例で,「社会」に重みを付けて検索する(「社会」に重みを付けてランキング検索する)
新聞記事:fand('社会'[5],'政治'),RANK COUNTS SORT
- 構造名「見出し」に「消費税」が含まれる文書,および構造名「本文」に「5%」が含まれる文書を検索する(複合条件式の記述例)
AND(新聞記事<文書.見出し>:eq('消費税'),新聞記事<文書.本文>:eq('5%'))
- 上記の例で,構造「本文」に重みを付けて検索する(構造「本文」に重みを付けてランキング検索する)
AND(新聞記事<文書.見出し>:eq('消費税'),
新聞記事<文書.本文>[10]:eq('5%')),
RANK COUNTS SORT 100 FORCE
- ファイル名「研究論文」から,章見出しに「イントラネット」を含み,かつ章題に「ホームページ」を含む文書を検索する。ただし,「イントラネット」および「ホームページ」は,同じ章に存在すること(特定構造検索条件式の記述例)
SAND(研究論文<本文.章>,研究論文<本文.章.見出し>:eq('イントラネット'),
研究論文<本文.章.章題>:eq('ホームページ'))