You can use collation matching rules to perform locale-specific searches for entries containing non-ASCII data.
Standard LDAP matching rules used for string-type attributes are typically designed for ASCII data. Although PingDirectory can search for attributes that contain non-ASCII data, the default matching rules have some limitations, including:
- They evaluate diacritical marks such as accents and umlauts when comparing
characters.
- The filter
“(givenName=Francois)”
doesn’t match a user whosegivenName
value is François. - The filter
“(givenName=François)”
doesn’t match a user whosegivenName
value is Francois.
- The filter
- They don't account for different encoding methods for the same character. The Unicode specification makes it possible to encode some non-ASCII characters in multiple ways, but the default matching rules might only match values that use the same encoding as used in the filter.
These limitations can affect searches related to non-ASCII data that reflects a regional language variant, referred to as a locale. When searching for this type of data, you can tell the server to search using a collation matching rule specific to the locale.
To search with a collation matching rule, use an extensible matching filter with the IDs for the collation matching rule and the locale. Include these values by either specifying the locale abbreviation followed by the rule abbreviation or the locale OID followed by the OID suffix of the rule.
For example, to search for entries with a givenName
value that
matches "Céline” for the French Canadian locale, you could use either of the
following filters:
(givenName:fr-CA.eq:=Céline)
(givenName:1.3.6.1.4.1.42.2.27.9.4.78.1.3:=Céline)
PingDirectory doesn’t support indexing extensible
matching filters. The server treats searches involving collation matching rules
as unindexed unless they are included in an AND
filter that
includes other components that can be indexed.
Collation matching rules
The following table lists the supported collation matching rules, correlated with their abbreviations and OID suffixes:
Rule | Description | Rule abbreviations | OID suffix |
---|---|---|---|
Equality |
The filter matches entries that have the specified value for the target attribute in accordance with the associated locale. Note:
For locale-specific filters, you can omit the abbreviation or OID suffix for the equality rule. |
.eq |
.3 |
Less-than |
The filter matches entries that have a value for the target attribute that comes before the specified value when using lexicographic ordering, in accordance with the associated locale. |
.lt |
.1 |
Less-than-or-equal-to |
The filter matches entries that have a value for the target attribute that either matches the specified value or comes before the specified value when using lexicographic ordering, in accordance with the associated locale. |
.le or .lte |
.2 |
Greater-than |
The filter matches entries that have a value for the target attribute that comes after the specified value when using lexicographic ordering, in accordance with the associated locale. |
.gt |
.5 |
Greater-than-or-equal-to |
The filter matches entries that have a value for the target attribute that either matches the specified value or comes after the specified value when using lexicographic ordering, in accordance with the associated locale. |
.ge or .gte |
.4 |
Locale language codes
The following table lists the languages by locale that PingDirectory supports for collation matching searches, correlated with their abbreviations and OIDs.
PingDirectory can only support collation matching
rules for a given locale if the underlying JVM supports the locale. Check the
matchingRules
attribute of the cn=schema
entry to determine whether the server supports collation matching for your
desired locale.
Language by locale | Locale abbreviation | OID |
---|---|---|
Afrikaans |
af |
1.3.6.1.4.1.42.2.27.9.4.1.1 |
Albanian, Albanian (Albania) |
sq, sq-AL |
1.3.6.1.4.1.42.2.27.9.4.127.1 |
Amharic |
am |
1.3.6.1.4.1.42.2.27.9.4.2.1 |
Arabic |
ar |
1.3.6.1.4.1.42.2.27.9.4.3.1 |
Arabic (Algeria) |
ar-DZ |
1.3.6.1.4.1.42.2.27.9.4.6.1 |
Arabic (Bahrain) |
ar-BH |
1.3.6.1.4.1.42.2.27.9.4.5.1 |
Arabic (Egypt) |
ar-EG |
1.3.6.1.4.1.42.2.27.9.4.7.1 |
Arabic (India) |
ar-IN |
1.3.6.1.4.1.42.2.27.9.4.8.1 |
Arabic (Iraq) |
ar-IQ |
1.3.6.1.4.1.42.2.27.9.4.9.1 |
Arabic (Jordan) |
ar-JO |
1.3.6.1.4.1.42.2.27.9.4.10.1 |
Arabic (Kuwait) |
ar-KW |
1.3.6.1.4.1.42.2.27.9.4.11.1 |
Arabic (Lebanon) |
ar-LB |
1.3.6.1.4.1.42.2.27.9.4.12.1 |
Arabic (Libya) |
ar-LY |
1.3.6.1.4.1.42.2.27.9.4.13.1 |
Arabic (Morocco) |
ar-MA |
1.3.6.1.4.1.42.2.27.9.4.14.1 |
Arabic (Oman) |
ar-OM |
1.3.6.1.4.1.42.2.27.9.4.15.1 |
Arabic (Qatar) |
ar-QA |
1.3.6.1.4.1.42.2.27.9.4.16.1 |
Arabic (Saudi Arabia) |
ar-SA |
1.3.6.1.4.1.42.2.27.9.4.17.1 |
Arabic (Sudan) |
ar-SD |
1.3.6.1.4.1.42.2.27.9.4.18.1 |
Arabic (Syria) |
ar-SY |
1.3.6.1.4.1.42.2.27.9.4.19.1 |
Arabic (Tunisia) |
ar-TN |
1.3.6.1.4.1.42.2.27.9.4.20.1 |
Arabic (United Arab Emirates) |
ar-AE |
1.3.6.1.4.1.42.2.27.9.4.4.1 |
Arabic (Yemen) |
ar-YE |
1.3.6.1.4.1.42.2.27.9.4.21.1 |
Armenian |
hy |
1.3.6.1.4.1.42.2.27.9.4.89.1 |
Bangla |
bn |
1.3.6.1.4.1.42.2.27.9.4.24.1 |
Basque |
eu |
1.3.6.1.4.1.42.2.27.9.4.70.1 |
Belarusian, Belarusian (Belarus) |
be, be-BY |
1.3.6.1.4.1.42.2.27.9.4.22.1 |
Bulgarian, Bulgarian (Bulgaria) |
bg, bg-BG |
1.3.6.1.4.1.42.2.27.9.4.23.1 |
Catalan |
ca, ca-ES |
1.3.6.1.4.1.42.2.27.9.4.25.1 |
Chinese |
zh |
1.3.6.1.4.1.42.2.27.9.4.143.1 |
Chinese (China) |
zh-CN |
1.3.6.1.4.1.42.2.27.9.4.144.1 |
Chinese (Hong Kong) |
zh-HK |
1.3.6.1.4.1.42.2.27.9.4.145.1 |
Chinese (Mongolia) |
zh-MO |
1.3.6.1.4.1.42.2.27.9.4.146.1 |
Chinese (Singapore) |
zh-SG |
1.3.6.1.4.1.42.2.27.9.4.147.1 |
Chinese (Taiwan) |
zh-TW |
1.3.6.1.4.1.42.2.27.9.4.148.1 |
Cornish |
kw |
1.3.6.1.4.1.42.2.27.9.4.99.1 |
Croatian, Croatian (Croatia) |
hr, hr-HR |
1.3.6.1.4.1.42.2.27.9.4.87.1 |
Czech, Czech (Czech Republic) |
cs, cs-CZ |
1.3.6.1.4.1.42.2.27.9.4.26.1 |
Danish, Danish (Denmark) |
da, da-DK |
1.3.6.1.4.1.42.2.27.9.4.27.1 |
Dutch, Dutch (Netherlands) |
nl, nl-NL |
1.3.6.1.4.1.42.2.27.9.4.105.1 |
Dutch (Belgium) |
nl-BE |
1.3.6.1.4.1.42.2.27.9.4.106.1 |
English, English (United States) |
en, en-US |
1.3.6.1.4.1.42.2.27.9.4.34.1 |
English (Australia) |
en-AU |
1.3.6.1.4.1.42.2.27.9.4.35.1 |
English (Canada) |
en-CA |
1.3.6.1.4.1.42.2.27.9.4.36.1 |
English (Hong Kong) |
en-HK |
1.3.6.1.4.1.42.2.27.9.4.38.1 |
English (India) |
en-IN |
1.3.6.1.4.1.42.2.27.9.4.40.1 |
English (Ireland) |
en-IE |
1.3.6.1.4.1.42.2.27.9.4.39.1 |
English (Malta) |
en-MT |
1.3.6.1.4.1.42.2.27.9.4.41.1 |
English (New Zealand) |
en-NZ |
1.3.6.1.4.1.42.2.27.9.4.42.1 |
English (Philippines) |
en-PH |
1.3.6.1.4.1.42.2.27.9.4.43.1 |
English (Singapore) |
en-SG |
1.3.6.1.4.1.42.2.27.9.4.44.1 |
English (South Africa) |
en-ZA |
1.3.6.1.4.1.42.2.27.9.4.46.1 |
English (U.S. Virgin Islands) |
en-VI |
1.3.6.1.4.1.42.2.27.9.4.45.1 |
English (United Kingdom) |
en-GB |
1.3.6.1.4.1.42.2.27.9.4.37.1 |
English (Zimbabwe) |
en-ZW |
1.3.6.1.4.1.42.2.27.9.4.47.1 |
Esperanto |
eo |
1.3.6.1.4.1.42.2.27.9.4.48.1 |
Estonian, Estonian (Estonia) |
et, et-EE |
1.3.6.1.4.1.42.2.27.9.4.69.1 |
Faroese |
fo |
1.3.6.1.4.1.42.2.27.9.4.75.1 |
Finnish, Finnish (Finland) |
fi, fi-FI |
1.3.6.1.4.1.42.2.27.9.4.74.1 |
French, French (France) |
fr, fr-FR |
1.3.6.1.4.1.42.2.27.9.4.76.1 |
French (Belgium) |
fr-BE |
1.3.6.1.4.1.42.2.27.9.4.77.1 |
French (Canada) |
fr-CA |
1.3.6.1.4.1.42.2.27.9.4.78.1 |
French (Luxembourg) |
fr-LU |
1.3.6.1.4.1.42.2.27.9.4.80.1 |
French (Switzerland) |
fr-CH |
1.3.6.1.4.1.42.2.27.9.4.79.1 |
Galician |
gl |
1.3.6.1.4.1.42.2.27.9.4.82.1 |
German, German (Germany) |
de, de-DE |
1.3.6.1.4.1.42.2.27.9.4.28.1 |
German (Austria) |
de-AT |
1.3.6.1.4.1.42.2.27.9.4.29.1 |
German (Belgium) |
de-BE |
1.3.6.1.4.1.42.2.27.9.4.30.1 |
German (Luxembourg) |
de-LU |
1.3.6.1.4.1.42.2.27.9.4.32.1 |
German (Switzerland) |
de-CH |
1.3.6.1.4.1.42.2.27.9.4.31.1 |
Greek, Greek (Greece) |
el, el-GR |
1.3.6.1.4.1.42.2.27.9.4.33.1 |
Gujarati |
gu |
1.3.6.1.4.1.42.2.27.9.4.83.1 |
Hebrew, Hebrew (Israel) |
he, he-IL |
1.3.6.1.4.1.42.2.27.9.4.85.1 |
Hindi, Hindi (India) |
hi, hi-IN |
1.3.6.1.4.1.42.2.27.9.4.86.1 |
Hungarian, Hungarian (Hungary) |
hu, hu-HU |
1.3.6.1.4.1.42.2.27.9.4.88.1 |
Icelandic, Icelandic (Iceland) |
is, is-IS |
1.3.6.1.4.1.42.2.27.9.4.91.1 |
Indonesian, Indonesian (Indonesia) |
id, id-ID |
1.3.6.1.4.1.42.2.27.9.4.90.1 |
Irish, Irish (Ireland) |
ga, ga-IE |
1.3.6.1.4.1.42.2.27.9.4.81.1 |
Italian, Italian (Italy) |
it, it-IT |
1.3.6.1.4.1.42.2.27.9.4.92.1 |
Italian (Switzerland) |
it-CH |
1.3.6.1.4.1.42.2.27.9.4.93.1 |
Japanese, Japanese (Japan) |
ja, ja-JP |
1.3.6.1.4.1.42.2.27.9.4.94.1 |
Kalaallisut |
kl |
1.3.6.1.4.1.42.2.27.9.4.95.1 |
Kannada |
kn |
1.3.6.1.4.1.42.2.27.9.4.96.1 |
Konkani |
kok |
1.3.6.1.4.1.42.2.27.9.4.98.1 |
Korean, Korean (South Korea) |
ko, ko-KR |
1.3.6.1.4.1.42.2.27.9.4.97.1 |
Latvian, Latvian (Latvia) |
lv, lv-LV |
1.3.6.1.4.1.42.2.27.9.4.101.1 |
Lithuanian, Lithuanian (Lithuania) |
lt, lt-LT |
1.3.6.1.4.1.42.2.27.9.4.100.1 |
Macedonian, Macedonian (North Macedonia) |
mk, mk-MK |
1.3.6.1.4.1.42.2.27.9.4.102.1 |
Maltese, Maltese (Malta) |
mt, mt-MT |
1.3.6.1.4.1.42.2.27.9.4.104.1 |
Manx Gaelic |
gv |
1.3.6.1.4.1.42.2.27.9.4.84.1 |
Marathi |
mr |
1.3.6.1.4.1.42.2.27.9.4.103.1 |
Norwegian, Norwegian (Norway) |
no, no-NO |
1.3.6.1.4.1.42.2.27.9.4.107.1 |
Norwegian (Bokmål) |
nb, no-NO-B |
1.3.6.1.4.1.42.2.27.9.4.110.1 |
Norwegian (Nynorsk nn) |
nn, nn-NO |
1.3.6.1.4.1.42.2.27.9.4.109.1 |
Norwegian (Nynorsk no-NO-NY) |
no-NO-NY |
1.3.6.1.4.1.42.2.27.9.4.108.1 |
Oromo |
om |
1.3.6.1.4.1.42.2.27.9.4.111.1 |
Oromo (Ethiopia) |
om-ET |
1.3.6.1.4.1.42.2.27.9.4.112.1 |
Oromo (Kenya) |
om-KE |
1.3.6.1.4.1.42.2.27.9.4.113.1 |
Persian |
fa |
1.3.6.1.4.1.42.2.27.9.4.71.1 |
Persian (India) |
fa-IN |
1.3.6.1.4.1.42.2.27.9.4.72.1 |
Persian (Iran) |
fa-IR |
1.3.6.1.4.1.42.2.27.9.4.73.1 |
Polish, Polish (Poland) |
pl, pl-PL |
1.3.6.1.4.1.42.2.27.9.4.114.1 |
Portuguese, Portuguese (Portugal) |
pt, pt-PT |
1.3.6.1.4.1.42.2.27.9.4.115.1 |
Portuguese (Brazil) |
pt-BR |
1.3.6.1.4.1.42.2.27.9.4.116.1 |
Romanian, Romanian (Romania) |
ro, ro-RO |
1.3.6.1.4.1.42.2.27.9.4.117.1 |
Russian, Russian (Russia) |
ru, ru-RU |
1.3.6.1.4.1.42.2.27.9.4.118.1 |
Russian (Ukraine) |
ru-UA |
1.3.6.1.4.1.42.2.27.9.4.119.1 |
Serbian, Serbian (Serbia) |
sr, sr-RS |
1.3.6.1.4.1.42.2.27.9.4.128.1 |
Serbo-Croatian |
sh |
1.3.6.1.4.1.42.2.27.9.4.120.1 |
Slovak, Slovak (Slovakia) |
sk, sk-SK |
1.3.6.1.4.1.42.2.27.9.4.121.1 |
Slovenian, Slovenian (Slovenia) |
sl, sl-SI |
1.3.6.1.4.1.42.2.27.9.4.122.1 |
Somali, Somali (Somalia) |
so, so-SO |
1.3.6.1.4.1.42.2.27.9.4.123.1 |
Somali (Djibouti) |
so-DJ |
1.3.6.1.4.1.42.2.27.9.4.124.1 |
Somali (Ethiopia) |
so-ET |
1.3.6.1.4.1.42.2.27.9.4.125.1 |
Somali (Kenya) |
so-KE |
1.3.6.1.4.1.42.2.27.9.4.126.1 |
Spanish, Spanish (Spain) |
es, es-ES |
1.3.6.1.4.1.42.2.27.9.4.49.1 |
Spanish (Argentina) |
es-AR |
1.3.6.1.4.1.42.2.27.9.4.50.1 |
Spanish (Bolivia) |
es-BO |
1.3.6.1.4.1.42.2.27.9.4.51.1 |
Spanish (Chile) |
es-CL |
1.3.6.1.4.1.42.2.27.9.4.52.1 |
Spanish (Colombia) |
es-CO |
1.3.6.1.4.1.42.2.27.9.4.53.1 |
Spanish (Costa Rica) |
es-CR |
1.3.6.1.4.1.42.2.27.9.4.54.1 |
Spanish (Dominican Republic) |
es-DO |
1.3.6.1.4.1.42.2.27.9.4.55.1 |
Spanish (Ecuador) |
es-EC |
1.3.6.1.4.1.42.2.27.9.4.56.1 |
Spanish (El Salvador) |
es-SV |
1.3.6.1.4.1.42.2.27.9.4.65.1 |
Spanish (Guatemala) |
es-GT |
1.3.6.1.4.1.42.2.27.9.4.57.1 |
Spanish (Honduras) |
es-HN |
1.3.6.1.4.1.42.2.27.9.4.58.1 |
Spanish (Mexico) |
es-MX |
1.3.6.1.4.1.42.2.27.9.4.59.1 |
Spanish (Nicaragua) |
es-NI |
1.3.6.1.4.1.42.2.27.9.4.60.1 |
Spanish (Panama) |
es-PA |
1.3.6.1.4.1.42.2.27.9.4.61.1 |
Spanish (Paraguay) |
es-PY |
1.3.6.1.4.1.42.2.27.9.4.64.1 |
Spanish (Peru) |
es-PE |
1.3.6.1.4.1.42.2.27.9.4.62.1 |
Spanish (Puerto Rico) |
es-PR |
1.3.6.1.4.1.42.2.27.9.4.63.1 |
Spanish (United States) |
es-US |
1.3.6.1.4.1.42.2.27.9.4.66.1 |
Spanish (Uruguay) |
es-UY |
1.3.6.1.4.1.42.2.27.9.4.67.1 |
Spanish (Venezuela) |
es-VE |
1.3.6.1.4.1.42.2.27.9.4.68.1 |
Swahili |
sw |
1.3.6.1.4.1.42.2.27.9.4.131.1 |
Swahili (Kenya) |
sw-KE |
1.3.6.1.4.1.42.2.27.9.4.132.1 |
Swahili (Tanzania) |
sw-TZ |
1.3.6.1.4.1.42.2.27.9.4.133.1 |
Swedish, Swedish (Sweden) |
sv, sv-SE |
1.3.6.1.4.1.42.2.27.9.4.129.1 |
Swedish (Finland) |
sv-FI |
1.3.6.1.4.1.42.2.27.9.4.130.1 |
Tamil |
ta |
1.3.6.1.4.1.42.2.27.9.4.134.1 |
Telugu |
te |
1.3.6.1.4.1.42.2.27.9.4.135.1 |
Thai, Thai (Thailand) |
th, th-TH |
1.3.6.1.4.1.42.2.27.9.4.136.1 |
Tigrinya |
ti |
1.3.6.1.4.1.42.2.27.9.4.137.1 |
Tigrinya (Eritrea) |
ti-ER |
1.3.6.1.4.1.42.2.27.9.4.138.1 |
Tigrinya (Ethiopia) |
ti-ET |
1.3.6.1.4.1.42.2.27.9.4.139.1 |
Turkish, Turkish (Türkiye) |
tr, tr-TR |
1.3.6.1.4.1.42.2.27.9.4.140.1 |
Ukrainian, Ukrainian (Ukraine) |
uk, uk-UA |
1.3.6.1.4.1.42.2.27.9.4.141.1 |
Vietnamese, Vietnamese (Vietnam) |
vi, vi-VN |
1.3.6.1.4.1.42.2.27.9.4.142.1 |