第1章 新規に作成されたすべてのデータベースに適用されるデフォルトインデックスの定義
Directory Server のデフォルトのインデックスでは、インデックスを作成する属性のセットが定義されています。新しいデータベースを作成すると、Directory Server はデフォルトのインデックス属性を cn=default indexes,cn=config,cn=ldbm database,cn=plugins,cn=config
エントリーからデータベース固有の cn=index,cn=database_name,cn=ldbm database,cn=plugins,cn=config
エントリーにコピーします。
Directory Server は、デフォルトのインデックスの変更を既存のデータベースに適用しません。
1.1. インデックスの種類
Directory Server は、インデックス付きの各属性のインデックスを、インスタンスのデータベースディレクトリー内の個別のデータベースファイルに保存します。たとえば、sn
属性のインデックスは、/var/lib/dirsrv/slapd-instance_name/db/database_name/sn.db
ファイルに格納されています。Directory Server が 1 つの属性に対して異なるインデックスを維持している場合、各インデックスファイルには複数のインデックスタイプを含めることができます。
Directory Server は以下のインデックスタイプをサポートしています。
-
存在インデックス (
pres
) は、特定の属性を含むエントリーのリストです。たとえば、attribute=mail
のようにクライアントが頻繁に検索を行う場合はこのタイプを使用します。 -
等価インデックス (
eq
) により、特定の属性値を含むエントリーの検索が改善されます。たとえば、cn
属性に等価インデックスを設定すると、cn=first_name last_name
の検索を高速に行うことができます。 -
近似インデックス (
approx
) は、効率的な近似検索や音符のような検索を可能にします。たとえば、cn~=first_name last_name
、cn~=first_name
、またはcn~=first_nam
(スペルに注意) は、cn=first_name X last_name
というエントリーが返されます。Directory Server の metaphone 表音アルゴリズムは US-ASCII 文字のみをサポートします。したがって、近似インデックスは、英語の値でのみ使用してください。 -
部分文字列インデックス (
sub
) は、維持するためのコストがかかるインデックスですが、エントリー内の部分文字列に対して効率的な検索が可能になります。部分文字列のインデックスは、各エントリーの最小 3 文字に制限されます。たとえば、telephoneNumber=*555*
と検索すると、telephoneNumber
属性に555
を含む値を持つディレクトリー内のすべてのエントリーが返されます。 - 国際インデックスは、国際ディレクトリー内の情報の検索を迅速化します。国際インデックスの作成プロセスは、通常のインデックスを作成するプロセスと似ています。ただし、オブジェクト識別子 (OID) をインデックス化する属性に関連付けることで一致するルールを適用する点が異なります。