13.6. 更改索引子字符串搜索的 Width
默认情况下,要索引搜索,搜索字符串必须至少有三个字符,而无需计算任何通配符字符。例如,字符串 abc 将是一个索引的搜索,而 ab 则不是。索引的搜索比未索引搜索要快得多,因此更改搜索键的最小长度有助于增加索引的搜索数量。
要提高搜索性能,特别是用于带有许多通配符搜索的站点,可以更改索引搜索的搜索字符串长度。目录服务器有三个属性,允许您更改索引搜索所需的最少字符数:
nsSubStrBegin
属性在通配符前为索引搜索设置所需的字符数。abc*
nsSubStrMiddle
属性为索引搜索设置所需的字符数,其中在搜索字符串的中间使用通配符。例如:*abc*
nsSubStrEnd
属性在通配符后为索引搜索设置所需的字符数。例如:*xyz
字符串 triplet 的默认子字符串搜索长度为 3、3 和 3,这意味着每个搜索都需要在每个通配符位置最少有三个字符。
对于任何属性索引使其具有备用字符串长度,请将 ScalableObject 对象类添加到条目中,然后设置子字符串搜索长度。
- 设置特定属性索引的新密钥长度。这需要添加 Scalable Object 对象类,然后根据需要添加
nsSubStrBegin
、nsSubStrEnd
或nsSubStrMiddle
属性。例如:# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: attribute_name,cn=index,cn=database_name,cn=ldbm database,cn=plugins,cn=config changetype: modify add: objectclass objectclass: extensibleObject - add: nsSubStrBegin nsSubStrBegin: 2 - add: nsSubStrMiddle nsSubStrMiddle: 2 - add: nsSubStrEnd nsSubStrEnd: 2