PingDirectory

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 whose givenName value is François.

    • The filter “(givenName=François)” doesn’t match a user whose givenName 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 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.

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

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