Localization of searches with collation matching
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.
-
-
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 |
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.
|
|
|
||
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. |
|
|
||
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. |
|
|
||
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. |
|
|
||
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. |
|
|
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 |
Language by locale | Locale abbreviation | OID |
---|---|---|
Afrikaans |
af |
Step 1.3.6.1.4.1.42.2.27.9.4.1.1 |
Albanian, Albanian (Albania) |
sq, sq-AL |
Step 1.3.6.1.4.1.42.2.27.9.4.127.1 |
Amharic |
am |
Step 1.3.6.1.4.1.42.2.27.9.4.2.1 |
Arabic |
ar |
Step 1.3.6.1.4.1.42.2.27.9.4.3.1 |
Arabic (Algeria) |
ar-DZ |
Step 1.3.6.1.4.1.42.2.27.9.4.6.1 |
Arabic (Bahrain) |
ar-BH |
Step 1.3.6.1.4.1.42.2.27.9.4.5.1 |
Arabic (Egypt) |
ar-EG |
Step 1.3.6.1.4.1.42.2.27.9.4.7.1 |
Arabic (India) |
ar-IN |
Step 1.3.6.1.4.1.42.2.27.9.4.8.1 |
Arabic (Iraq) |
ar-IQ |
Step 1.3.6.1.4.1.42.2.27.9.4.9.1 |
Arabic (Jordan) |
ar-JO |
Step 1.3.6.1.4.1.42.2.27.9.4.10.1 |
Arabic (Kuwait) |
ar-KW |
Step 1.3.6.1.4.1.42.2.27.9.4.11.1 |
Arabic (Lebanon) |
ar-LB |
Step 1.3.6.1.4.1.42.2.27.9.4.12.1 |
Arabic (Libya) |
ar-LY |
Step 1.3.6.1.4.1.42.2.27.9.4.13.1 |
Arabic (Morocco) |
ar-MA |
Step 1.3.6.1.4.1.42.2.27.9.4.14.1 |
Arabic (Oman) |
ar-OM |
Step 1.3.6.1.4.1.42.2.27.9.4.15.1 |
Arabic (Qatar) |
ar-QA |
Step 1.3.6.1.4.1.42.2.27.9.4.16.1 |
Arabic (Saudi Arabia) |
ar-SA |
Step 1.3.6.1.4.1.42.2.27.9.4.17.1 |
Arabic (Sudan) |
ar-SD |
Step 1.3.6.1.4.1.42.2.27.9.4.18.1 |
Arabic (Syria) |
ar-SY |
Step 1.3.6.1.4.1.42.2.27.9.4.19.1 |
Arabic (Tunisia) |
ar-TN |
Step 1.3.6.1.4.1.42.2.27.9.4.20.1 |
Arabic (United Arab Emirates) |
ar-AE |
Step 1.3.6.1.4.1.42.2.27.9.4.4.1 |
Arabic (Yemen) |
ar-YE |
Step 1.3.6.1.4.1.42.2.27.9.4.21.1 |
Armenian |
hy |
Step 1.3.6.1.4.1.42.2.27.9.4.89.1 |
Bangla |
bn |
Step 1.3.6.1.4.1.42.2.27.9.4.24.1 |
Basque |
eu |
Step 1.3.6.1.4.1.42.2.27.9.4.70.1 |
Belarusian, Belarusian (Belarus) |
be, be-BY |
Step 1.3.6.1.4.1.42.2.27.9.4.22.1 |
Bulgarian, Bulgarian (Bulgaria) |
bg, bg-BG |
Step 1.3.6.1.4.1.42.2.27.9.4.23.1 |
Catalan |
ca, ca-ES |
Step 1.3.6.1.4.1.42.2.27.9.4.25.1 |
Chinese |
zh |
Step 1.3.6.1.4.1.42.2.27.9.4.143.1 |
Chinese (China) |
zh-CN |
Step 1.3.6.1.4.1.42.2.27.9.4.144.1 |
Chinese (Hong Kong) |
zh-HK |
Step 1.3.6.1.4.1.42.2.27.9.4.145.1 |
Chinese (Mongolia) |
zh-MO |
Step 1.3.6.1.4.1.42.2.27.9.4.146.1 |
Chinese (Singapore) |
zh-SG |
Step 1.3.6.1.4.1.42.2.27.9.4.147.1 |
Chinese (Taiwan) |
zh-TW |
Step 1.3.6.1.4.1.42.2.27.9.4.148.1 |
Cornish |
kw |
Step 1.3.6.1.4.1.42.2.27.9.4.99.1 |
Croatian, Croatian (Croatia) |
hr, hr-HR |
Step 1.3.6.1.4.1.42.2.27.9.4.87.1 |
Czech, Czech (Czech Republic) |
cs, cs-CZ |
Step 1.3.6.1.4.1.42.2.27.9.4.26.1 |
Danish, Danish (Denmark) |
da, da-DK |
Step 1.3.6.1.4.1.42.2.27.9.4.27.1 |
Dutch, Dutch (Netherlands) |
nl, nl-NL |
Step 1.3.6.1.4.1.42.2.27.9.4.105.1 |
Dutch (Belgium) |
nl-BE |
Step 1.3.6.1.4.1.42.2.27.9.4.106.1 |
English, English (United States) |
en, en-US |
Step 1.3.6.1.4.1.42.2.27.9.4.34.1 |
English (Australia) |
en-AU |
Step 1.3.6.1.4.1.42.2.27.9.4.35.1 |
English (Canada) |
en-CA |
Step 1.3.6.1.4.1.42.2.27.9.4.36.1 |
English (Hong Kong) |
en-HK |
Step 1.3.6.1.4.1.42.2.27.9.4.38.1 |
English (India) |
en-IN |
Step 1.3.6.1.4.1.42.2.27.9.4.40.1 |
English (Ireland) |
en-IE |
Step 1.3.6.1.4.1.42.2.27.9.4.39.1 |
English (Malta) |
en-MT |
Step 1.3.6.1.4.1.42.2.27.9.4.41.1 |
English (New Zealand) |
en-NZ |
Step 1.3.6.1.4.1.42.2.27.9.4.42.1 |
English (Philippines) |
en-PH |
Step 1.3.6.1.4.1.42.2.27.9.4.43.1 |
English (Singapore) |
en-SG |
Step 1.3.6.1.4.1.42.2.27.9.4.44.1 |
English (South Africa) |
en-ZA |
Step 1.3.6.1.4.1.42.2.27.9.4.46.1 |
English (U.S. Virgin Islands) |
en-VI |
Step 1.3.6.1.4.1.42.2.27.9.4.45.1 |
English (United Kingdom) |
en-GB |
Step 1.3.6.1.4.1.42.2.27.9.4.37.1 |
English (Zimbabwe) |
en-ZW |
Step 1.3.6.1.4.1.42.2.27.9.4.47.1 |
Esperanto |
eo |
Step 1.3.6.1.4.1.42.2.27.9.4.48.1 |
Estonian, Estonian (Estonia) |
et, et-EE |
Step 1.3.6.1.4.1.42.2.27.9.4.69.1 |
Faroese |
fo |
Step 1.3.6.1.4.1.42.2.27.9.4.75.1 |
Finnish, Finnish (Finland) |
fi, fi-FI |
Step 1.3.6.1.4.1.42.2.27.9.4.74.1 |
French, French (France) |
fr, fr-FR |
Step 1.3.6.1.4.1.42.2.27.9.4.76.1 |
French (Belgium) |
fr-BE |
Step 1.3.6.1.4.1.42.2.27.9.4.77.1 |
French (Canada) |
fr-CA |
Step 1.3.6.1.4.1.42.2.27.9.4.78.1 |
French (Luxembourg) |
fr-LU |
Step 1.3.6.1.4.1.42.2.27.9.4.80.1 |
French (Switzerland) |
fr-CH |
Step 1.3.6.1.4.1.42.2.27.9.4.79.1 |
Galician |
gl |
Step 1.3.6.1.4.1.42.2.27.9.4.82.1 |
German, German (Germany) |
de, de-DE |
Step 1.3.6.1.4.1.42.2.27.9.4.28.1 |
German (Austria) |
de-AT |
Step 1.3.6.1.4.1.42.2.27.9.4.29.1 |
German (Belgium) |
de-BE |
Step 1.3.6.1.4.1.42.2.27.9.4.30.1 |
German (Luxembourg) |
de-LU |
Step 1.3.6.1.4.1.42.2.27.9.4.32.1 |
German (Switzerland) |
de-CH |
Step 1.3.6.1.4.1.42.2.27.9.4.31.1 |
Greek, Greek (Greece) |
el, el-GR |
Step 1.3.6.1.4.1.42.2.27.9.4.33.1 |
Gujarati |
gu |
Step 1.3.6.1.4.1.42.2.27.9.4.83.1 |
Hebrew, Hebrew (Israel) |
he, he-IL |
Step 1.3.6.1.4.1.42.2.27.9.4.85.1 |
Hindi, Hindi (India) |
hi, hi-IN |
Step 1.3.6.1.4.1.42.2.27.9.4.86.1 |
Hungarian, Hungarian (Hungary) |
hu, hu-HU |
Step 1.3.6.1.4.1.42.2.27.9.4.88.1 |
Icelandic, Icelandic (Iceland) |
is, is-IS |
Step 1.3.6.1.4.1.42.2.27.9.4.91.1 |
Indonesian, Indonesian (Indonesia) |
id, id-ID |
Step 1.3.6.1.4.1.42.2.27.9.4.90.1 |
Irish, Irish (Ireland) |
ga, ga-IE |
Step 1.3.6.1.4.1.42.2.27.9.4.81.1 |
Italian, Italian (Italy) |
it, it-IT |
Step 1.3.6.1.4.1.42.2.27.9.4.92.1 |
Italian (Switzerland) |
it-CH |
Step 1.3.6.1.4.1.42.2.27.9.4.93.1 |
Japanese, Japanese (Japan) |
ja, ja-JP |
Step 1.3.6.1.4.1.42.2.27.9.4.94.1 |
Kalaallisut |
kl |
Step 1.3.6.1.4.1.42.2.27.9.4.95.1 |
Kannada |
kn |
Step 1.3.6.1.4.1.42.2.27.9.4.96.1 |
Konkani |
kok |
Step 1.3.6.1.4.1.42.2.27.9.4.98.1 |
Korean, Korean (South Korea) |
ko, ko-KR |
Step 1.3.6.1.4.1.42.2.27.9.4.97.1 |
Latvian, Latvian (Latvia) |
lv, lv-LV |
Step 1.3.6.1.4.1.42.2.27.9.4.101.1 |
Lithuanian, Lithuanian (Lithuania) |
lt, lt-LT |
Step 1.3.6.1.4.1.42.2.27.9.4.100.1 |
Macedonian, Macedonian (North Macedonia) |
mk, mk-MK |
Step 1.3.6.1.4.1.42.2.27.9.4.102.1 |
Maltese, Maltese (Malta) |
mt, mt-MT |
Step 1.3.6.1.4.1.42.2.27.9.4.104.1 |
Manx Gaelic |
gv |
Step 1.3.6.1.4.1.42.2.27.9.4.84.1 |
Marathi |
mr |
Step 1.3.6.1.4.1.42.2.27.9.4.103.1 |
Norwegian, Norwegian (Norway) |
no, no-NO |
Step 1.3.6.1.4.1.42.2.27.9.4.107.1 |
Norwegian (Bokmål) |
nb, no-NO-B |
Step 1.3.6.1.4.1.42.2.27.9.4.110.1 |
Norwegian (Nynorsk nn) |
nn, nn-NO |
Step 1.3.6.1.4.1.42.2.27.9.4.109.1 |
Norwegian (Nynorsk no-NO-NY) |
no-NO-NY |
Step 1.3.6.1.4.1.42.2.27.9.4.108.1 |
Oromo |
om |
Step 1.3.6.1.4.1.42.2.27.9.4.111.1 |
Oromo (Ethiopia) |
om-ET |
Step 1.3.6.1.4.1.42.2.27.9.4.112.1 |
Oromo (Kenya) |
om-KE |
Step 1.3.6.1.4.1.42.2.27.9.4.113.1 |
Persian |
fa |
Step 1.3.6.1.4.1.42.2.27.9.4.71.1 |
Persian (India) |
fa-IN |
Step 1.3.6.1.4.1.42.2.27.9.4.72.1 |
Persian (Iran) |
fa-IR |
Step 1.3.6.1.4.1.42.2.27.9.4.73.1 |
Polish, Polish (Poland) |
pl, pl-PL |
Step 1.3.6.1.4.1.42.2.27.9.4.114.1 |
Portuguese, Portuguese (Portugal) |
pt, pt-PT |
Step 1.3.6.1.4.1.42.2.27.9.4.115.1 |
Portuguese (Brazil) |
pt-BR |
Step 1.3.6.1.4.1.42.2.27.9.4.116.1 |
Romanian, Romanian (Romania) |
ro, ro-RO |
Step 1.3.6.1.4.1.42.2.27.9.4.117.1 |
Russian, Russian (Russia) |
ru, ru-RU |
Step 1.3.6.1.4.1.42.2.27.9.4.118.1 |
Russian (Ukraine) |
ru-UA |
Step 1.3.6.1.4.1.42.2.27.9.4.119.1 |
Serbian, Serbian (Serbia) |
sr, sr-RS |
Step 1.3.6.1.4.1.42.2.27.9.4.128.1 |
Serbo-Croatian |
sh |
Step 1.3.6.1.4.1.42.2.27.9.4.120.1 |
Slovak, Slovak (Slovakia) |
sk, sk-SK |
Step 1.3.6.1.4.1.42.2.27.9.4.121.1 |
Slovenian, Slovenian (Slovenia) |
sl, sl-SI |
Step 1.3.6.1.4.1.42.2.27.9.4.122.1 |
Somali, Somali (Somalia) |
so, so-SO |
Step 1.3.6.1.4.1.42.2.27.9.4.123.1 |
Somali (Djibouti) |
so-DJ |
Step 1.3.6.1.4.1.42.2.27.9.4.124.1 |
Somali (Ethiopia) |
so-ET |
Step 1.3.6.1.4.1.42.2.27.9.4.125.1 |
Somali (Kenya) |
so-KE |
Step 1.3.6.1.4.1.42.2.27.9.4.126.1 |
Spanish, Spanish (Spain) |
es, es-ES |
Step 1.3.6.1.4.1.42.2.27.9.4.49.1 |
Spanish (Argentina) |
es-AR |
Step 1.3.6.1.4.1.42.2.27.9.4.50.1 |
Spanish (Bolivia) |
es-BO |
Step 1.3.6.1.4.1.42.2.27.9.4.51.1 |
Spanish (Chile) |
es-CL |
Step 1.3.6.1.4.1.42.2.27.9.4.52.1 |
Spanish (Colombia) |
es-CO |
Step 1.3.6.1.4.1.42.2.27.9.4.53.1 |
Spanish (Costa Rica) |
es-CR |
Step 1.3.6.1.4.1.42.2.27.9.4.54.1 |
Spanish (Dominican Republic) |
es-DO |
Step 1.3.6.1.4.1.42.2.27.9.4.55.1 |
Spanish (Ecuador) |
es-EC |
Step 1.3.6.1.4.1.42.2.27.9.4.56.1 |
Spanish (El Salvador) |
es-SV |
Step 1.3.6.1.4.1.42.2.27.9.4.65.1 |
Spanish (Guatemala) |
es-GT |
Step 1.3.6.1.4.1.42.2.27.9.4.57.1 |
Spanish (Honduras) |
es-HN |
Step 1.3.6.1.4.1.42.2.27.9.4.58.1 |
Spanish (Mexico) |
es-MX |
Step 1.3.6.1.4.1.42.2.27.9.4.59.1 |
Spanish (Nicaragua) |
es-NI |
Step 1.3.6.1.4.1.42.2.27.9.4.60.1 |
Spanish (Panama) |
es-PA |
Step 1.3.6.1.4.1.42.2.27.9.4.61.1 |
Spanish (Paraguay) |
es-PY |
Step 1.3.6.1.4.1.42.2.27.9.4.64.1 |
Spanish (Peru) |
es-PE |
Step 1.3.6.1.4.1.42.2.27.9.4.62.1 |
Spanish (Puerto Rico) |
es-PR |
Step 1.3.6.1.4.1.42.2.27.9.4.63.1 |
Spanish (United States) |
es-US |
Step 1.3.6.1.4.1.42.2.27.9.4.66.1 |
Spanish (Uruguay) |
es-UY |
Step 1.3.6.1.4.1.42.2.27.9.4.67.1 |
Spanish (Venezuela) |
es-VE |
Step 1.3.6.1.4.1.42.2.27.9.4.68.1 |
Swahili |
sw |
Step 1.3.6.1.4.1.42.2.27.9.4.131.1 |
Swahili (Kenya) |
sw-KE |
Step 1.3.6.1.4.1.42.2.27.9.4.132.1 |
Swahili (Tanzania) |
sw-TZ |
Step 1.3.6.1.4.1.42.2.27.9.4.133.1 |
Swedish, Swedish (Sweden) |
sv, sv-SE |
Step 1.3.6.1.4.1.42.2.27.9.4.129.1 |
Swedish (Finland) |
sv-FI |
Step 1.3.6.1.4.1.42.2.27.9.4.130.1 |
Tamil |
ta |
Step 1.3.6.1.4.1.42.2.27.9.4.134.1 |
Telugu |
te |
Step 1.3.6.1.4.1.42.2.27.9.4.135.1 |
Thai, Thai (Thailand) |
th, th-TH |
Step 1.3.6.1.4.1.42.2.27.9.4.136.1 |
Tigrinya |
ti |
Step 1.3.6.1.4.1.42.2.27.9.4.137.1 |
Tigrinya (Eritrea) |
ti-ER |
Step 1.3.6.1.4.1.42.2.27.9.4.138.1 |
Tigrinya (Ethiopia) |
ti-ET |
Step 1.3.6.1.4.1.42.2.27.9.4.139.1 |
Turkish, Turkish (Türkiye) |
tr, tr-TR |
Step 1.3.6.1.4.1.42.2.27.9.4.140.1 |
Ukrainian, Ukrainian (Ukraine) |
uk, uk-UA |
Step 1.3.6.1.4.1.42.2.27.9.4.141.1 |
Vietnamese, Vietnamese (Vietnam) |
vi, vi-VN |
Step 1.3.6.1.4.1.42.2.27.9.4.142.1 |