13.2. 標準インデックスの作成
本セクションでは、コマンドラインと Web コンソールを使用した特定の属性について、存在、等価、概算、部分文字列、および国際指標を作成する方法を説明します。
注記
新しいインデックスタイプを作成すると、Directory Server はこのデフォルトインデックスを、今後作成する新規データベースのテンプレートとして使用します。デフォルトのインデックスを更新すると、更新された設定は既存のデータベースに適用されません。新しいインデックスを既存のデータベースに適用するには、「既存のデータベースへの新規インデックスの作成」 で説明されているように、dsctl db2index コマンドまたは cn=index,cn=tasks タスクを使用します。
13.2.1. コマンドラインを使用したインデックスの作成
注記
システムインデックスは Directory Server にハードコーディングされるため、新しいシステムインデックスを作成できません。
ldapmodify を使用して、新しいインデックス属性をディレクトリーに追加します。
- デフォルトインデックスのいずれかになる新しいインデックスを作成するには、新しいインデックス属性を cn=default indexes,cn=config,cn=ldbm database,cn=plugins,cn=config エントリーに追加します。
- 特定のデータベースに新しいインデックスを作成するには、作成するインデックスを cn=index,cn=database_name,cn=ldbm database,cn=plugins,cn=config エントリーに追加します。ここで、cn=database_name はデータベースの名前に対応します。
注記
dse.ldif
ファイルの cn=config の下にエントリーを作成しないでください。dse.ldif
設定ファイルの cn=config エントリーは、通常のエントリーと同じ拡張性の高いデータベースには保存されません。その結果、多くのエントリー (特に頻繁に更新される可能性のあるエントリー) を cn=config に保存すると、パフォーマンスが低下する可能性があります。パフォーマンスの理由から、cn=config に単純なユーザーエントリーを保存することは推奨していませんが、設定情報が一元化されるため、cn=config に Directory Manager エントリーやレプリケーションマネージャー (サプライヤーのバインド DN) エントリーなどの特別なユーザーエントリーを保存すると便利です。
エントリーの追加に必要な LDIF 更新ステートメントの詳細は、「ディレクトリーエントリーの更新」を参照してください。
たとえば、Example1 データベースに
sn
(姓 (surname)) 属性の有無、等価、および部分文字列インデックスを作成するには、以下を実行します。
- ldapmodify を実行して、新しいインデックスの LDIF エントリーを追加します。
# ldapmodify
-a
-D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=sn,cn=index,cn=Example1,cn=ldbm database,cn=plugins,cn=config changetype: add objectClass:top objectClass:nsIndex cn:sn nsSystemIndex:false nsIndexType:pres nsIndexType:eq nsIndexType:sub nsMatchingRule:2.16.840.1.113730.3.3.2.3.1cn
属性には、インデックスの属性の名前 (この例ではsn
属性) が含まれます。エントリーは nsIndex オブジェクトクラスのメンバーです。nsSystemIndex 属性は false で、インデックスが Directory Server 操作に不可欠ではないことを示します。複数値の nsIndexType 属性は、存在 (pres)、等価 (eq)、および部分文字列 (sub) のインデックスを指定します。各キーワードは別々の行で入力する必要があります。この例の nsMatchingRule 属性は、ブルガリア語の照合順序の OID を指定しています。マッチングルールは、言語や、日付や整数などの他のフォーマットなど、値の一致の可能性を示すことができます。nsIndexType 属性の none キーワードを使用して、インデックスが属性に対して維持されないように指定できます。この例では、nsIndexType を none に変更して、Example1 データベースのsn
インデックスを一時的に無効にします。dn: cn=sn,cn=index,cn=Example1,cn=ldbm database,cn=plugins,cn=config objectClass:top objectClass:nsIndex cn:sn nsSystemIndex:false nsIndexType:none
マッチングルールとその OID の完全リストは、「一致するルールの使用」 を参照してください。インデックス設定属性は、『Red Hat Directory Server 設定、コマンド、およびファイルリファレンス』 を参照してください。
注記
インデックスの作成時に、(属性のエイリアスではなく) 属性のプライマリー名を常に使用します。属性の主な名前は、スキーマの属性に対して最初に一覧表示される名前です。たとえば、ユーザー ID 属性の uid です。
13.2.2. Web コンソールを使用したインデックスの作成
存在、等価性、概算、部分文字列、または国際インデックスを作成するには、以下を実行します。
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。「Web コンソールを使用した Directory Server へのログイン」を参照してください。
- インスタンスを選択します。
- 接尾辞エントリーを選択します。
- Indexes タブを開きます。
- インデックスの属性、インデックスのタイプ、および任意でマッチングルールを選択します。