14.4.4. 一致するルールの使用
マッチングルール は、Directory Server に対して、2 つの値 (属性に保存されている値および検索フィルターの値) を比較する方法を説明します。マッチングルールは、インデックスキーの生成方法も定義します。マッチングルールは、属性構文に関連するものです。構文は属性値の 形式 を定義します。マッチングルールは、形式が比較およびインデックス化される方法を定義します。
マッチングルールは 3 種類あります。
- EQUALITY は、同じ一致の 2 つの値を比較する方法を指定します。たとえば、「Fred」および「FRED」などの文字列の処理方法です。等価をテストする検索フィルター (attribute=value など) は EQUALITY ルールを使用します。等価 (eq) インデックスは EQUALITY ルールを使用してインデックスキーを生成します。更新操作は EQUALITY ルールを使用して、値を比較して、エントリーにすでにある値と比較します。
- ORDERING は、2 つの値を比較して、ある値が別の値以上であるかを確認できます。範囲 (例: attribute<=value または attribute>=value) を設定する検索フィルターは、ORDERING ルールを使用します。ORDERING ルールを持つ属性のインデックスは等価値の順序です。
- SUBSTR は、部分文字列照合を行う方法を指定します。部分文字列検索フィルター (例: attribute=*partial_string* または attribute=*end_string) は SUBSTR ルールを使用します。部分文字列 (サブ) インデックスは SUBSTR ルールを使用してインデックスを生成します。
重要
対応する検索フィルターまたはインデックスタイプの検索またはインデックスをサポートするには、マッチングルールが必要です。たとえば、ある属性の等価検索フィルターや eq インデックスをサポートするには、その属性に EQUALITY マッチングルールが必要です。範囲検索フィルターとインデックス化の範囲検索に対応するために、属性に ORDERING マッチングルールと EQUALITY マッチングルールの両方が必要です。
マッチングルールのない属性の検索フィルターの使用を試みた場合は、PROTOCOL_ERROR または UNWILLING_TO_PERFORM で検索操作は拒否されます。
例14.1 マッチングルールおよびカスタム属性
Example Corp. 管理者は、IA5 文字列 (7 ビット ASCII) 構文で
MyFirstName
という名前のカスタム属性タイプと、caseExactIA5Match の EQUALITY マッチングルールを作成します。MyFirstName
の値が Fred のエントリーは、(MyFirstName=Fred) のフィルターを使用した検索で返されますが、(MyFirstName=FRED) および (MyFirstName=fred) のフィルターでは返されません。Fred、FRED、および fred はすべて有効な IA5 文字列値ですが、caseExactIA5Match ルールを使用した場合一致しません。
検索で返される Fred の 3 つのすべてのバリアントについては、caseIgnoreIA5Match マッチングルールを使用するように
MyFirstName
を定義する必要があります。
拡張されたマッチングルール検索フィルターを使用すると、属性に定義されたルールとは異なるマッチングルールを持つ属性値を検索できます。マッチングルールは、検索される属性の構文と互換性がある必要があります。たとえば、大文字と小文字を区別するマッチングルールが定義されている属性に対して大文字と小文字を区別しない検索を行うには、検索フィルターに大文字と小文字を区別しないマッチングルールを指定します。
(MyFirstName:caseIgnoreIA5Match:
=fred)
注記
マッチングルールは、国際化されたディレクトリーの検索に使用され、結果に使用する言語タイプを指定します。詳細は、「国際化されたディレクトリーの検索」を参照してください。
注記
属性のインデックスは、その属性のスキーマ定義で定義されているマッチングルールを使用します。インデックスに使用する追加のマッチングルールは、「コマンドラインからのインデックスの作成」にあるように
nsMatchingRule
属性を使用して設定できます。
マッチングルールフィルターの構文では、一致するルール名または OID が検索フィルターに挿入されます。
attr:matchingRule:=value
- attr は、
cn
やmail
など、検索されるエントリーに属する属性です。 - matchingRule は、必要な構文に従って属性値と一致するために使用するルールの名前または OID を含む文字列です。
- value は、検索する属性値か、比較演算子および検索する属性値のいずれかです。フィルターの値の構文は、使用されるマッチングルール形式によって異なります。
マッチングルールは実際にはスキーマ要素であり、他のスキーマ要素と同様に、オブジェクト識別子 (OID) によって一意に識別されます。
Red Hat Directory Server 向けに定義されたマッチングルールの多くは言語コードに関連し、Directory Server によってサポートされる国際化された照合順序が設定されます。たとえば、OID 2.16.840.1.113730.3.3.2.17.1 はフィンランドの照合順序を識別します。
注記
その他のスキーマ要素とは異なり、Directory Server の設定には、追加のマッチングルールを追加できません。
以下の一覧におけるマッチングルール一覧のほとんどは、等価インデックスに使用されます。名前に 順序 を含むマッチングルールは順序インデックスに、名前に 部分文字列 を含むマッチングルールは部分文字列 (SUBSTR) インデックスに使用されます。(国際的な一致や照合順序に用いられるマッチングルールは、別の命名法を用いています。)
- ビット単位の AND 一致
- ビット単位の AND 一致を実行します。OID: 1.2.840.113556.1.4.803互換性のある構文: 通常、
Integer
および数値の文字列で使用されます。Directory Server は自動的に数値の文字列を整数に変換します。 - ビット単位の OR 一致
- ビット単位の OR 一致を実行します。OID: 1.2.840.113556.1.4.804互換性のある構文: 通常、
Integer
および数値の文字列で使用されます。Directory Server は自動的に数値の文字列を整数に変換します。 - booleanMatch
- 照合する値が TRUE または FALSE かを評価します。OID: 2.5.13.13互換性のある構文: ブール値
- caseExactIA5Match
- 値の大文字と小文字を区別する比較を行います。OID: 1.3.6.1.4.1.1466.109.114.1互換性のある構文:
IA5
構文、URI - caseExactMatch
- 値の大文字と小文字を区別する比較を行います。OID: 2.5.13.5互換性のある構文: Directory String、Printable String、OID
- caseExactOrderingMatch
- 大文字と小文字を区別する範囲検索が可能になります (「より小さい」および「より大きい」)。OID: 2.5.13.6互換性のある構文: Directory String、Printable String、OID
- caseExactSubstringsMatch
- 大文字と小文字を区別した部分文字列とインデックスの検索を実行します。OID: 2.5.13.7互換性のある構文: Directory String、Printable String、OID
- caseIgnoreIA5Match
- 値に対して大文字と小文字を区別しない比較を実行します。OID: 1.3.6.1.4.1.1466.109.114.2互換性のある構文:
IA5
構文、URI - caseIgnoreIA5SubstringsMatch
- 部分文字列およびインデックスで大文字と小文字を区別しない検索を実行します。OID: 1.3.6.1.4.1.1466.109.114.3互換性のある構文:
IA5
構文、URI - caseIgnoreListMatch
- 値に対して大文字と小文字を区別しない比較を実行します。OID: 2.5.13.11互換性のある構文: 住所
- caseIgnoreListSubstringsMatch
- 部分文字列およびインデックスで大文字と小文字を区別しない検索を実行します。OID: 2.5.13.12互換性のある構文: 住所
- caseIgnoreMatch
- 値に対して大文字と小文字を区別しない比較を実行します。OID: 2.5.13.2互換性のある構文: Directory String、Printable String、OID
- caseIgnoreOrderingMatch
- 大文字と小文字を区別しない範囲検索が可能になります (「より小さい」および「より大きい」)。OID: 2.5.13.3互換性のある構文: Directory String、Printable String、OID
- caseIgnoreSubstringsMatch
- 部分文字列およびインデックスで大文字と小文字を区別しない検索を実行します。OID: 2.5.13.4互換性のある構文: Directory String、Printable String、OID
- distinguishedNameMatch
- 識別名の値を比較します。OID: 2.5.13.1互換性のある構文: 識別名(DN)
- generalizedTimeMatch
- 一般化された時間形式の値を比較します。OID: 2.5.13.27互換性のある構文: 一般化時刻
- generalizedTimeOrderingMatch
- 一般化された時間形式の値の範囲検索 (「より小さい」および「より大きい」) が可能になります。OID: 2.5.13.28互換性のある構文: 一般化時刻
- integerMatch
- 整数値を評価します。OID: 2.5.13.14互換性のある構文: 整数
- integerOrderingMatch
- 整数値に範囲化された検索が可能になります (「より小さい」および「より大きい」)。OID: 2.5.13.15互換性のある構文: 整数
- keywordMatch
- 指定した検索値を、属性値の文字列と比較します。OID: 2.5.13.33互換性のある構文: ディレクトリー文字列
- numericStringMatch
- より一般的な数値を比較します。OID: 2.5.13.8互換性のある構文: 数値文字列
- numericStringOrderingMatch
- 複数の一般的な値に対する範囲検索 (「より小さい」および「より大きい」) が可能になります。OID: 2.5.13.9互換性のある構文: 数値文字列
- numericStringSubstringMatch
- より一般的な数値を比較します。OID: 2.5.13.10互換性のある構文: 数値文字列
- objectIdentifierMatch
- オブジェクト識別子 (OID) 値を比較します。OID: 2.5.13.0互換性のある構文: OID
- octetStringMatch
- octet 文字列の値を評価します。OID: 2.5.13.17互換性のある構文: オクテット文字列
- octetStringOrderingMatch
- 一連のオクテット文字列値で範囲検索 (「より小さい」および「より大きい」) をサポートします。OID: 2.5.13.18互換性のある構文: オクテット文字列
- telephoneNumberMatch
- 電話番号の値を評価します。OID: 2.5.13.20互換性のある構文: 電話番号
- telephoneNumberSubstringsMatch
- 電話番号の値に対して部分文字列とインデックス検索を行います。OID: 2.5.13.21互換性のある構文: 電話番号
- uniqueMemberMatch
- 名前と UID の値を比較します。OID: 2.5.13.23互換性のある構文: 名前および任意の UID
- wordMatch
- 指定した検索値を、属性値の文字列と比較します。このマッチングルールは大文字と小文字を区別しません。OID: 2.5.13.32互換性のある構文: ディレクトリー文字列
マッチングルール | オブジェクト識別子 (OID) |
---|---|
英語 (大文字と小文字を区別する順序の一致) | 2.16.840.1.113730.3.3.2.11.3 |
アルバニア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.44.1 |
アラビア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.1.1 |
ベラルーシ語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.2.1 |
ブルガリア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.3.1 |
カタロニア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.4.1 |
中国語: 簡体字 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.49.1 |
中国語: 繁体字 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.50.1 |
クロアチア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.22.1 |
チェコ語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.5.1 |
デンマーク語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.6.1 |
オランダ語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.33.1 |
オランダ語: ベルギー (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.34.1 |
英語 - アメリカ (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.11.1 |
英語 - カナダ語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.12.1 |
英語: アイルランド (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.14.1 |
エストニア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.16.1 |
フィンランド語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.17.1 |
フランス語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.18.1 |
フランス語: ベルギー (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.19.1 |
フランス語 - カナダ語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.20.1 |
フランス語 - スイス (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.21.1 |
ドイツ語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.7.1 |
ドイツ語 - オーストリア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.8.1 |
ドイツ語: スイス (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.9.1 |
ギリシャ語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.10.1 |
ヘブライ語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.27.1 |
ハンガリー語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.23.1 |
アイスランド語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.24.1 |
イタリア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.25.1 |
イタリア語: スイス (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.26.1 |
日本語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.28.1 |
韓国語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.29.1 |
ラトビア語、レット語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.31.1 |
リトアニア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.30.1 |
マケドニア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.32.1 |
ノルウェー語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.35.1 |
ノルウェー語 - ブークモール (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.36.1 |
ノルウェー語 - ニーノルスク (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.37.1 |
ポーランド語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.38.1 |
ルーマニア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.39.1 |
ロシア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.40.1 |
セルビア語 - キリル文字 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.45.1 |
セルビア語 - ラテン語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.41.1 |
スロバキア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.42.1 |
スロベニア語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.43.1 |
スペイン語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.15.1 |
スウェーデン語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.46.1 |
トルコ語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.47.1 |
ウクライナ語 (大文字と小文字を区別しない順序一致) | 2.16.840.1.113730.3.3.2.48.1 |
マッチングルール | オブジェクト識別子 (OID) |
---|---|
英語 (大文字と小文字を区別する部分文字列の一致) | 2.16.840.1.113730.3.3.2.11.3.6 |
アルバニア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.44.1.6 |
アラビア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.1.1.6 |
ベラルーシ語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.2.1.6 |
ブルガリア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.3.1.6 |
カタロニア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.4.1.6 |
中国語 - 簡体字 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.49.1.6 |
中国語 - 繁体字 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.50.1.6 |
クロアチア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.22.1.6 |
チェコ語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.5.1.6 |
デンマーク語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.6.1.6 |
オランダ語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.33.1.6 |
オランダ語: ベルギー (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.34.1.6 |
英語 - アメリカ (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.11.1.6 |
英語: カナダ (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.12.1.6 |
英語: アイルランド (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.14.1.6 |
エストニア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.16.1.6 |
フィンランド語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.17.1.6 |
フランス語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.18.1.6 |
フランス語: ベルギー (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.19.1.6 |
フランス語: カナダ (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.20.1.6 |
フランス語: スイス (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.21.1.6 |
ドイツ語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.7.1.6 |
ドイツ語 - オーストリア (大文字小文字を区別しない文字列一致) | 2.16.840.1.113730.3.3.2.8.1.6 |
ドイツ語: スイス (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.9.1.6 |
ギリシャ語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.10.1.6 |
ヘブライ語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.27.1.6 |
ハンガリー語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.23.1.6 |
アイスランド語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.24.1.6 |
イタリア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.25.1.6 |
イタリア語: スイス (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.26.1.6 |
日本語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.28.1.6 |
韓国語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.29.1.6 |
ラトビア語、レット語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.31.1.6 |
リトアニア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.30.1.6 |
マケドニア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.32.1.6 |
ノルウェー語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.35.1.6 |
ノルウェー語 - ブークモール (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.36.1.6 |
ノルウェー語 - ニーノルスク (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.37.1.6 |
ポーランド語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.38.1.6 |
ルーマニア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.39.1.6 |
ロシア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.40.1.6 |
セルビア語 - キリル文字 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.45.1.6 |
セルビア語 - ラテン語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.41.1.6 |
スロバキア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.42.1.6 |
ストべニア語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.43.1.6 |
スペイン語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.15.1.6 |
スウェーデン語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.46.1.6 |
トルコ語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.47.1.6 |
ウクライナ語 (大文字と小文字を区別しない部分文字列一致) | 2.16.840.1.113730.3.3.2.48.1.6 |