ページの先頭行へ戻る
Interstage Shunsaku Data Manager トラブルシューティング集

A.4.5 検索式

全件検索式と、前方一致検索式(条件なし)の2つの式を論理積で指定して検索をしました。結果として全件ヒットとなり、前方一致が効いてないようですが、正しいですか?

正しいです。前方一致、後方一致の記号(^、$)のみを条件式に指定した場合、“前方一致かつ条件なし”あるいは“後方一致かつ条件なし”の検索を行います。この際の検索の仕様は、一般的な正規表現と同様に全件ヒットする仕組みになっています。

なお、Shunsakuの場合はXML形式のデータを対象としますので、検索対象のタグも意識する必要があり、検索対象のタグが存在する文章がすべてヒットする仕様になっています。


空文字('')検索について教えてください。

Shunsakuでは、XML形式のデータを取り扱うため、空要素という取り扱いになり、以下のいずれかのように動作します。

  • 「== ''」 (完全一致の空文字)

    「空要素のタグ」への検索になります。

    <aaa></aaa>という空要素の文書がヒットします。

例)

検索式

/doc/detail/taxi == ''

/doc/detail/taxiが示す要素ノードの値が空文字と等しい場合に真となります。

  • 「= ''」

    空要素がタグの要素の一部である状態は存在しません。

    <aaa></aaa>という文書はヒットしません。


検索式に"/root = 'X & ( A & B | C )'"と記述する(制御記号間に空白を含める)とエラーになりますが、これは正しい結果でしょうか?

正しい結果ではありません。条件式中のキーワードは、無用な空白やタブ文字を含まないように指定してください。

キーワードに、二重引用符(" ")や引用符(' ')で囲った部分に空白を指定した場合、Shunsakuではその空白も検索対象として扱います。

アプリケーションソースを見やすくするなどのために空白を入れることは、本来の意図した検索と異なった検索を実行することになります。