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 |