LDAP
search filters define criteria for selecting items from a directory.
The criteria are based on attribute values. The syntax for search
filters is defined in RFC2254 (The String Representation of LDAP
Search Filters).
The simplest filter places a condition on a single attribute
value:
(attributeType filterType value)
Filters must be within parentheses.
attributeType is the name of the attribute
upon which you are placing the condition.
filterType is one of four valid arithmetic
operators.
value is the value that you are comparing
to the attribute.
The following table lists the valid operators that you can use
in a search filter.
Operator
|
Meaning
|
=
|
equal
|
~=
|
approximately equal
|
<=
|
less than or equal to
|
>=
|
greater than or equal to
|
For example, the search filter (uid=jdoe) returns
the directory item that has the uid attribute of value jdoe.
Substrings and any values
In search filters, the asterisk (*)
represents any sequence of characters. You can use the asterisk
for expressing values that have specific prefixes or suffix, or
to express any value.
The expression (uid=j*) matches
all items with a uid attribute that begins with j.
The expression (uid=*doe) matches all items
with a uid attribute that ends with doe.
The expression (uid=*) matches all items
that have a uid attribute of any value.
Logical operators
Use logical operators to apply conditions on
more than one attribute, or to apply the opposite of the condition
specified by a filter. Logical operators precede the filters to
which they are applied. The following table lists the logical operators and
provides examples of their use.
Logical operator
|
Description
|
Example
|
&
|
All associated filters match.
|
(&(uid=j*)(c=CA))
Matches
all directory items that have a uid attribute value
that begins with j and a c attribute
value that equals CA.
|
|
|
Any of the associated filters match.
|
(|(c=CA)(c=US))
Matches
all directory items that have a c attribute value
that equals either CA or US.
|
!
|
The opposite of the filter.
|
(!(uid=j*))
Matches
all directory items that have a uid attribute value
that does not begin with j.
|
Escape character
To express the literal value of a special character,
precede the character with a backslash (\). For example, if an attribute
value includes parentheses, precede the opening and closing parenthesis
with the backslash:
(telephoneNumber=\(555\) 555-1234)
All directory items
All directory items must have a value
for the objectClass attribute. The following search filter matches
all items in the area of the directory that is searched:
(objecClass=*)