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_lenCopy to Clipboard Copied! Toggle word wrap Toggle overflow - コマンドラインを使用して部分文字列インデックスの検索キーの長さを変更する の説明に従って、新しい検索キーの長さを設定します。
インスタンスを停止して、ディスク上のデータベースを同期します。
dsctl <instance_name> stop
# dsctl <instance_name> stopCopy 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_2Copy 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_lenCopy to Clipboard Copied! Toggle word wrap Toggle overflow