6.4. 部分文字列インデックスでの検索キーの長さの変更
デフォルトでは、部分文字列インデックスの検索キーの長さは 3 文字以上にする必要があります。たとえば、Directory Server は文字列 abc
を検索キーとしてインデックスに追加しますが、ab*
は追加しません。ただし、特に多くのワイルドカード文字を含む検索のパフォーマンスを向上させるために、検索キーの長さを短くすることができます。これにより、インデックス内の検索キーの数が増加します。
Directory Server には、検索キーに必要な最小文字数を変更する 3 つの属性があります。
-
nsSubStrBegin
: 検索キーの先頭 (ワイルドカード文字の前) の最小文字数を設定します。以下に例を示します。
abc*
abc*
-
nsSubStrMiddle
: 検索キーのワイルドカード文字間の最小文字数を設定します。以下に例を示します。
*abc*
*abc*
-
nsSubStrEnd
: ワイルドカード文字の後の検索キーの末尾の文字数を設定します。以下に例を示します。
*xyz
*xyz
6.4.1. コマンドラインを使用して部分文字列インデックスの検索キーの長さを変更する リンクのコピーリンクがクリップボードにコピーされました!
属性インデックスに新しい検索キーの長さを設定することで、検索速度を向上させることができます。
手順
新しい検索キーの長さを設定するには、
extensibleObject
オブジェクトクラスを追加してから、nsSubStrBegin
、nsSubStrEnd
、またはnsSubStrMiddle
属性をエントリーに追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい設定を適用するには、インデックスを再作成します。たとえば、Directory Server インスタンスの実行中に、次のコマンドを使用して、指定した属性のインデックスを再作成します。
dsconf <instance_name> backend index reindex --attr <attribute_name> <database_name>
# dsconf <instance_name> backend index reindex --attr <attribute_name> <database_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
-
cn
など、検索キーの長さを変更する属性を選択します。 cn
インデックスをダンプします。dbscan -f /var/lib/dirsrv/slapd-<instance_name>/db/database/cn.db > /tmp/default_len
# dbscan -f /var/lib/dirsrv/slapd-<instance_name>/db/database/cn.db > /tmp/default_len
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コマンドラインを使用して部分文字列インデックスの検索キーの長さを変更する の説明に従って、新しい検索キーの長さを設定します。
インスタンスを停止して、ディスク上のデータベースを同期します。
dsctl <instance_name> stop
# dsctl <instance_name> stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cn
インデックスをダンプします。dbscan -f /var/lib/dirsrv/slapd-<instance_name>/db/database/cn.db > /tmp/len_2
# dbscan -f /var/lib/dirsrv/slapd-<instance_name>/db/database/cn.db > /tmp/len_2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow len_2
とdefault_len
ファイルを比較します。diff /tmp/len_2 /tmp/default_len
# diff /tmp/len_2 /tmp/default_len
Copy to Clipboard Copied! Toggle word wrap Toggle overflow