ブラウズインデックスは、検索結果に対してサーバー側でのソートを要求する検索処理でのみ使用される特別なインデックスです。『Sun Java System Directory Server Enterprise Edition 6.3 Reference 』で、Directory Server のブラウズインデックスの仕組みを説明しています。
クライアント検索結果のソート用にカスタマイズしたブラウズインデックスを手動で定義する必要があります。ブラウズインデックス、または仮想リスト表示 (VLX) インデックスを作成するには、次の手順を実行します。この節では、ブラウズインデックスエントリの追加または変更の手順とブラウズインデックスの再生成の手順も説明します。
この手順のいくつかの部分では、DSCC を使用してこのタスクを実行できます。詳細については、「Directory Service Control Center のインタフェース」 および DSCC オンラインヘルプを参照してください。手順のその他の部分については、コマンド行を使用した場合にのみ実効できます。
新しいブラウズインデックスエントリを追加するか、既存のブラウズインデックスエントリを編集するには、ldapmodify コマンドを使用します。
手順については、「ブラウズインデックスエントリを追加または変更する」を参照してください。
dsconf reindex コマンドを実行して、サーバーに保持される新しいブラウズインデックスのセットを生成します。
手順については、「ブラウズインデックスを再生成する」を参照してください。
ブラウズインデックスは、特定のベースエントリとサブツリーに対して指定された検索ごとに異なります。ブラウズインデックスの設定は、エントリを含むサフィックスのデータベース設定に定義されます。
ディレクトリサーバーの各ブラウズインデックスに vlvBase、vlvScope、および vlvFilter 属性を設定します。
これらの属性は、検索のベース、検索の範囲、検索のフィルタを設定します。これらの属性は vlvSearch オブジェクトクラスを使用します。
各ブラウズインデックスに vlvSort 属性を設定します。
この属性は、インデックスをソートする属性の名前または属性を指定します。このエントリは先頭のエントリの子で、 vlvIndex オブジェクトクラスを使用して、ソートする属性と順番を指定します。
次の例は、ldapmodify コマンドを使用して、ブラウズインデックス設定エントリを作成します。
$ ldapmodify -a -h host -p port -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: cn=people_browsing_index, cn=database-name, cn=ldbm database,cn=plugins,cn=config objectClass: top objectClass: vlvSearch cn: Browsing ou=People vlvBase: ou=People,dc=example,dc=com vlvScope: 1 vlvFilter: (objectclass=inetOrgPerson) dn: cn=Sort rev employeenumber, cn=people_browsing_index, cn=database-name,cn=ldbm database,cn=plugins,cn=config objectClass: top objectClass: vlvIndex cn: Sort rev employeenumber vlvSort: -employeenumber ^D |
vlvScope は次のいずれかです。
ベースエントリのみの場合 0
ベースの直接の子の場合 1
ベースをルートにしたサブツリー全体の場合 2
vlvfilter は、クライアント検索操作で使われる LDAP フィルタと同じフィルタです。すべてのブラウズインデックスエントリは同じ場所に配置されるため、cn の値にはブラウズインデックスの名前を指定しておく必要があります。
vlvSearch エントリは、それぞれが少なくとも 1 つの vlvIndex エントリを持つ必要があります。vlvSort 属性は、ソートする属性とソート順序を定義する属性名のリストです。属性名の前に付けられたダッシュ (-) は、順序を逆にすることを意味します。複数の vlvIndex エントリを定義することで、検索に複数のインデックスを定義できます。前述の例では、次のエントリを追加できます。
$ ldapmodify -a -h host -p port -D cn=admin,cn=Administrators,cn=config -w - dn: cn=Sort sn givenname uid, cn=people_browsing_index, cn=database-name,cn=ldbm database,cn=plugins,cn=config objectClass: top objectClass: vlvIndex cn: Sort sn givenname uid vlvSort: sn givenname uid ^D |
ブラウズインデックス設定を変更するには、対応する vlvSearch エントリまたは対応する vlvIndex エントリを編集します。
ブラウズインデックスを削除して、サーバーで維持しないようにするには、各 vlvIndex エントリを削除します。
または、vlvIndex エントリが 1 つだけ存在する場合は、vlvSearch エントリと vlvIndex エントリの両方を削除します。
ブラウズインデックスエントリを作成したら、指定した属性の新しいブラウズインデックスを生成します。
$ dsadm reindex -l -t attr-index instance-path suffix-DN |
このコマンドは、ディレクトリの内容をスキャンし、ブラウズインデックス用のデータベースファイルを作成します。
次の例は、前の項で定義したブラウズインデックスを生成します。
$ dsadm reindex -l -b database-name -t Browsing /local/ds \ ou=People,dc=example,dc=com |
dsadm reindex コマンドの詳細については、dsadm(1M) のマニュアルページを参照してください。