ページの先頭行へ戻る
Big Data Integration ServerV1.4.0 検索編アプリケーション開発ガイド
FUJITSU Software

3.4 複数の条件を論理演算子で結合して検索する

Shunsakuに格納しているXML文書から条件を満たすXML文書を検索するには、検索式を指定します。


複数の条件を論理演算子で結合して検索することができます。論理演算子を指定することで、条件1と条件2の両方を満たすXML文書を検索したり、条件1または条件2を満たすXML文書を検索したりすることができます。

論理演算子には、“AND”および“OR”があります。“AND”と“OR”を検索式に指定した場合は、“AND”が“OR”より優先して判定されます。

検索式および論理演算子の詳細については、“B.3 検索式”を参照してください。


例として以下の文書があるものとします。


文書A

<doc>
    :
  <basic date="2006年01月30日" expense="15700円">
    :
  </basic>
  <detail>
    <destination area="東京都千代田区">東京営業所</destination>
    <purpose>Interstage Shunsaku販売推進会議出席</purpose>
    :
  </detail>
    :
</doc>

文書B

<doc>
    :
  <basic date="2006年02月16日" expense="16020円">
    :
  </basic>
  <detail>
    <destination area="大阪府大阪市阿倍野区">大阪支店</destination>
    <purpose>V7.0L10導入報告</purpose>
    :
  </detail>
    :
</doc>

文書C

<doc>
    :
  <basic date="2006年03月02日" expense="2400円">
    :
  </basic>
  <detail>
    <destination area="神奈川県横浜市港北区">本社</destination>
    <purpose>Interstage定例会議</purpose>
    :
  </detail>
    :
</doc>

例1

出張目的(purpose)に“Interstage”または“Shunsaku”という文字列を含む文書を検索します。

/doc/detail/purpose = 'Interstage' OR 
/doc/detail/purpose = 'Shunsaku'

結果:文書Aと文書Cが返却されます。


例2

出張エリア(area)に“東京都”または“神奈川県”という文字列を含む文書を検索します。

/doc/detail/destination/@area = '東京都' OR 
/doc/detail/destination/@area = '神奈川県'

結果:文書Aと文書Cが返却されます。


例3

出張費用(expense)が10000円以上で、かつ、出張エリア(area)に“大阪市”を含む文書を検索します。

/doc/basic/@expense >= 10000 AND
/doc/detail/destination/@area = '大阪市'

結果:文書Bが返却されます。


参考

“OR”を優先させたい場合は、条件式を括弧でくくります。


例4

出張先(destination)が“本社”または“大阪支店”で、かつ、出張日(date)に“2006年02月”を含む文書を検索します。

(/doc/detail/destination == '本社' OR
 /doc/detail/destination == '大阪支店') AND
/doc/basic/@date = '2006年02月'

結果:文書Bが返却されます。


参考

パス式で指定した要素ノードに閉じた範囲で、条件を指定する場合はフィルタ式を指定します。

フィルタ式の詳細については、“B.3.7 フィルタ式”を参照してください。