ページの先頭行へ戻る
Interstage Application Server ディレクトリサービス運用ガイド

7.1.2 検索フィルタ

  Interstage ディレクトリサービスのクライアントで使用できる検索フィルタ(RFC1558準拠)とその使用例を次に示します。

使用できる検索フィルタ

  検索フィルタには、以下の5つを指定することができます。

フィルタ

内容

同値
(equal)

指定した値と同じ属性値がある場合に、取り出します。

部分文字列
(substring)

指定した部分文字列を含む属性値がある場合に、取り出します。
部分文字列には、前方一致、後方一致、任意一致、およびこれらを組み合わせて指定することができます。

以上
(greater)

指定した値以上の属性値がある場合に、取り出します。

以下
(less)

指定した値以下の属性値がある場合に、取り出します。

存在
(present)

属性値がある場合に、取り出します。

  また、上記の各フィルタを組み合わせることで、より詳細に指定することができます。以下に組み合わせに使用する論理演算を示します。

論理演算

内容

論理積
(AND)

複数のフィルタを論理積(AND)条件で結びます。
すべての条件が真の場合に、有効です。

論理和
(OR)

複数のフィルタを論理和(OR)条件で結びます。
いずれかの条件が真の場合に、有効です。

否定
(NOT)

(RDBを使用する場合にだけ有効です。)

指定した条件が偽の場合に、有効です。以下のどちらかの方法で指定できます。

  • 1つの条件式に対して否定する方法。

  • 複数のフィルタを論理積(AND)または、論理和(OR)で結びつけた条件に対して否定する方法。

例:

  • (!(cn=Fujitsu))

  • (!(&(cn=User001)(sn=Fujitsu)))

(!(cn=Fujitsu)(uid=0123))という使い方はできません。

検索フィルタの文法

  検索フィルタの文法は、以下のRFC文書に記述されています。

特殊文字の指定方法

  検索フィルタの値に、検索する値として以下の特殊文字を指定する場合、その特殊文字を「\」(エンマーク)でエスケープします。

  ldapsearchコマンドでは、1つのエスケープ文字「\」に続けて、16進数として指定する必要があります。

  C APIでは、2つのエスケープ文字「\\」に続けて、16進数として指定する必要があります。

  JNDIでは、16進数にする必要はありません。以下のように指定します。

特殊文字

ldapsearchコマンド

C API

JNDI

*

\2a

\\2a

\\*

(

\28

\\28

\\(

)

\29

\\29

\\)

\

\5c

\\5c

\\\\


  検索フィルタの値に「富士通(株)」を指定する場合、以下のように指定します。

ldapsearchコマンド

"o=富士通\28株\29"

C API

(o=富士通\\28株\\29)

JNDI

(o=富士通\\(株\\))