3.14.1 全文検索の条件式

全文検索の条件式には,テキストデータベースを検索する条件を指定します。

<この項の構成>
(1) 形式
(2) オプション
(3) 指定例

(1) 形式

条件式〔,ランキングオプション〕
       〔,検索オプション〔,検索オプション〕…〕

複合論理演算子

{AND|OR|NOT}

要素

{SET(検索結果集合ID)|検索条件式|複合条件式|特定構造検索条件式}

(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を指定します。
ファイル名
検索対象ファイルを指定します。
特定構造名
範囲を特定するための構造名を指定します。
特定構造名は,テキストデータベースに登録された文書に存在する構造名だけを指定できます。したがって,DTDに指定されていても,文書に存在しない構造名を指定した場合は,エラーになります。
スコア算出方法
ランキングのために与えるスコア(得点)の算出方法を指定します。スコア算出方法には,COUNTSを指定します。
COUNTS
ヒットした検索タームの数または成立した条件の数に基づいてスコアが付けられる方法です。
論理演算指定時のスコア算出方式
論理演算時のスコア算出方法を指定します。論理演算時のスコア算出方法は次の形式で指定します。この指定を省略した場合,BOOLEANが仮定されます。
BOOLEAN|TOTAL
BOOLEAN
BOOLEAN方式でスコアの算出をします。検索条件が論理積のときは,演算対象(検索タームまたは検索条件)の文書内でのそれぞれの出現数のうち,最小値に基づいてスコアが付けられる方式です。検索条件が論理和のときは,演算対象の文書内でのそれぞれの出現数のうち,最大値に基づいてスコアが付けられる方式です。
TOTAL
スコア総和方式でスコアの算出をします。検索条件が論理積のときも論理和のときも,演算対象の文書内でのそれぞれの出現数の合計値に基づいてスコアが付けられる方式です。
ランキング詳細指定
ランキングの方法を指定します。ランキング詳細指定は,次の形式で指定します。
SCORE|SORT〔対象件数〔FORCE〕〕
SCORE
スコアを算出する場合に指定します。
SORT〔対象件数〔FORCE〕〕
ヒット件数が対象件数に指定した値以下の場合は,算出されたスコアをキーとして降順にソートされます。対象件数を省略した場合は,1,000が仮定されます。
FORCEを指定すると,ヒット件数が対象件数での値を超える場合でも降順にソートされ,上位から対象件数分の情報でランキングされます。
FORCEが指定されていない場合にヒット件数が対象件数を超える場合は,ランキングされません。
対象件数に大きな値を指定したり,FORCEを指定したときにヒット件数が多かったりすると,処理時間が長くなりますので注意してください。
EXPANS〔展開モード〕
検索タームの展開モードを指定します。
展開モード
次の4種類を組み合わせて指定します。
  • U
    検索タームを同義語展開する場合に指定します。ただし,同義語辞書が設定されていない場合は,エラーになります。
  • k
    検索タームをかたかな異表記展開する場合に指定します。
  • a
    検索タームをアルファベット異表記展開する場合に指定します。
  • e
    検索タームを全角・半角異表記展開する場合に指定します。
BASE〔検索結果集合ID〕
検索時のベースを指定します。
検索結果集合ID
検索のベースにする検索結果集合のIDを指定します。ここで指定した検索結果集合に含まれる文書が検索の対象になります。なお,0を指定すると,すべての文書が検索の対象になります。検索結果集合IDを省略すると,0が仮定されます。

(3) 指定例