Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

13.4.2. コマンドラインから参照インデックスの作成

コマンドラインから参照インデックスまたは仮想リストビュー (VLV) インデックスを作成するには、以下の手順を行います。
  1. ldapmodify を使用して新しい参照インデックスエントリーを追加するか、既存の参照インデックスエントリーを編集します。「参照インデックスエントリーの追加」を参照してください。
  2. vlvindex スクリプトを実行して、サーバーが維持する参照インデックスの新しいセットを生成します。「vlvindex スクリプトの実行」 を参照してください。または、cn=tasks,cn=config (「cn=tasks エントリーを使用した参照インデックスの作成」)で適切なタスクを起動します。
  3. VLV インデックス情報へのアクセス制御が適切に設定されていることを確認します。「VLV 情報のアクセス制御の設定」を参照してください。

13.4.2.1. 参照インデックスエントリーの追加

作成する参照インデックスエントリーの型は、加速化する ldapsearch 属性のソートタイプによって異なります。以下を考慮することが重要です。
  • 検索の範囲 (base、one、sub)
  • 検索のベース (検索の開始点として使用するエントリー)
  • ソートする属性
  • 検索のフィルター
    検索用のフィルターを指定する方法は、「14章ディレクトリーエントリーの検索」を参照してください。
  • 検索のベースとなるエントリーが属する LDBM データベース。LDBM データベースで参照先インデックスのみを作成できます。
たとえば、以下の属性で Example1 データベースに保持されるエントリー ou=People,dc=example,dc=comldapsearch を加速する参照インデックスを作成します。
  • 検索ベースは ou=People,dc=example,dc=com です。
  • 検索フィルターは (|(objectclass=*)(objectclass=ldapsubentry))です。
  • スコープは 1 です。
  • 返される属性のソート順序は、cngivennameoousn です。
  1. ldapmodify を実行し、参照しているインデックスのベース、スコープ、およびフィルターを指定するエントリーを追加します。
    # ldapmodify -a -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
    
    dn: cn=MCC ou=People dc=example dc=com,cn=userRoot,cn=ldbm database,cn=plugins,cn=config
    changetype: add
    objectClass: top
    objectClass: vlvSearch
    cn: MCC ou=People dc=example dc=com
    vlvBase: ou=People,dc=example,dc=com
    vlvScope: 1
    vlvFilter: (|(objectclass=*)(objectclass=ldapsubentry))
    • cn には、参照インデックスを作成するエントリーを指定する参照インデックス識別子 (この例では ou=People,dc=example,dc=com エントリー) が含まれます。Red Hat は、Directory Server コンソールによって採用されるアプローチである参照インデックス識別子にエントリーの dn を使用して、同一の参照インデックスが作成されないようにすることを推奨します。エントリーは vlvSearch オブジェクトクラスのメンバーです。
    • vlvbase 属性の値は、参照インデックスを作成するエントリーを指定します。この例では、ou=People,dc=example,dc=com エントリー (参照インデックス識別子) を指定します。
    • vlvScope 属性は 1 で、加速する検索の範囲が 1 であることを示します。1 の検索範囲は、cn 属性に指定されたエントリーの即時の子のみで、エントリー自体ではなく検索が実行されます。
    • vlvFilter は、検索に使用するフィルターを指定します (例: (|(objectclass=*)(objectclass=ldapsubentry)))。
  2. 2 番目のエントリーを追加して、返された属性のソート順序を指定します。
    dn: cn=by MCC ou=People dc=example dc=com,cn=MCC ou=People
       dc=example dc=com,cn=userRoot,cn=ldbm database,cn=plugins,
       cn= config
    objectClass: top
    objectClass: vlvIndex
    cn: by MCC ou=People dc=example dc=com
    vlvSort: cn givenName o ou sn
    • cn には、参照先のインデックスソート識別子が含まれます。上記の cn は、デフォルトでコンソールによって作成されたタイプです。これには、参照インデックス ベースで設定されるソート順序が含まれます。エントリーは vlvIndex オブジェクトクラスのメンバーです。
    • vlvSort 属性の値は、属性のソート順序を指定します。この例では、cngivenNameoou、さらに sn になります。
注記
最初に参照するインデックスエントリーを cn=database_name,cn=ldbm database,cn=plugins,cn=config ディレクトリーツリーノードに追加し、2 番目のエントリーは最初のエントリーの子である必要があります。