A matching rule provides guidelines for string comparison during a search operation. These rules are divided into three categories:
The directory server supports equality matches for all syntaxes
except binary. For attributes defined using a binary syntax, the server only
supports existence searches, for example "(jpegphoto=*)". For the IA5 String
and Directory String syntaxes, an attribute definition can be further defined
as case exact or case ignore. For example, the cn attribute uses the caseIgnoreMatch
matching rule making the values "John Doe" and "john doe" equivalent. For
case ignore matching rules, comparison is done after converting values to
uppercase. The uppercase algorithm is not locale-sensitive and may not be
correct for all locales.
The directory server supports substring matching for Directory
String, IA5 String, and Distinguished Name syntax attributes. Search filters
for substring matches use the "*" character to match zero or more characters
in a string. For example, the search filter "(cn=*smith)" matches all cn
values ending with the string "smith".
Ordering matches are supported for Integer, Directory String,
IA5 String and Distinguished Name syntaxes. For string syntaxes, ordering
is based on a simple byte ordering of the UTF-8 string values. If the attribute
is defined with a case ignore matching rule, ordering is done using uppercase
string values. As noted earlier, the uppercase algorithm may not be correct
for all locales.
In the IBM Directory Server, the substring and ordering matching
behavior is implied by the matching rule: all syntaxes that support substring
matching have an implied substring matching rule, and all syntaxes that support
ordering have an implied ordering rule. For attributes defined using a case
ignore matching rule, the implied substring and ordering matching rules are
also case ignore.
Equality matching rules | ||
---|---|---|
Matching Rule | OID | Syntax |
caseExactIA5Match | 1.3.6.1.4.1.1466.109.114.1 | Directory String syntax |
caseExactMatch | 2.5.13.5 IA5 | String syntax |
caseIgnoreIA5Match | 1.3.6.1.4.1.1466.109.114.2 | IA5 String syntax |
caseIgnoreMatch | 2.5.13.2 | Directory String syntax |
distinguishedNameMatch | 2.5.13.1 | DN - distinguished name |
generalizedTimeMatch | 2.5.13.27 | Generalized Time syntax |
ibm-entryUuidMatch | 1.3.18.0.2.22.2 | Directory String syntax |
integerFirstComponentMatch | 2.5.13.29 | Integer syntax - integral number |
integerMatch | 2.5.13.14 | Integer syntax - integral number |
objectIdentifierFirstComponentMatch | 2.5.13.30 | String for containing OIDs. The OID is a string containing digits (0-9) and decimal points (.). |
objectIdentifierMatch | 2.5.13.0 | String for containing OIDs. The OID is a string containing digits (0-9) and decimal points (.) |
octetStringMatch | 2.5.13.17 | Directory String syntax |
telephoneNumberMatch | 2.5.13.20 | Telephone Number syntax |
uTCTimeMatch | 2.5.13.25 | UTC Time syntax |
Ordering matching rules | ||
---|---|---|
Matching rule | OID | Syntax |
caseExactOrderingMatch | 2.5.13.6 | Directory String syntax |
caseIgnoreOrderingMatch | 2.5.13.3 | Directory String syntax |
distinguishedNameOrderingMatch | 1.3.18.0.2.4.405 | DN - distinguished name |
generalizedTimeOrderingMatch | 2.5.13.28 | Generalized Time syntax |
Substring matching rules | ||
---|---|---|
Matching rule | OID | Syntax |
caseExactSubstringsMatch | 2.5.13.7 | Directory String syntax |
caseIgnoreSubstringsMatch | 2.5.13.4 | Directory String syntax |
telephoneNumberSubstringsMatch | 2.5.13.21 | Telephone Number syntax |