13.2. 创建标准索引

这部分论述了如何使用命令行和 Web 控制台为特定属性创建存在、相等性、大约、子字符串和国际索引。
注意
当您创建新索引类型时,Directory 服务器使用此默认索引作为以后创建的每个新数据库的模板。如果您更新默认索引,则更新的设置不会应用到现有的数据库。要将新索引应用到现有数据库,请使用 dsctl db2index 命令或 cn=index,cn=tasks 任务,如 第 13.3 节 “为现有数据库创建新索引” 所述。

13.2.1. 使用命令行创建索引

注意
您无法创建新系统索引,因为系统索引在 Directory 服务器中硬编码。
使用 ldapmodify 在您的目录中添加新的索引属性。
  • 要创建新索引,其将成为默认索引之一,请将新的索引属性添加到 cn=default index,cn=config,cn=ldbm database,cn=plugins,cn=config 条目。
  • 要为特定数据库创建新索引,将其添加到 cn=index,cn=database_name,cn=ldbm database,cn=plugins,cn=config 条目,其中 cn=database_name 对应于数据库的名称。
注意
避免在 dse.ldif 文件中创建 cn=config 下的条目。dse.ldif 配置文件中的 cn=config 条目不存储在与常规条目相同的高度可扩展数据库中。因此,如果很多条目,特别是可能经常更新的条目存储在 cn=config 下,性能将会受到影响。虽然因为性能的原因,我们建议不要存储 cn=config 下的简单用户条目,但在 cn=config 下存储特殊用户条目(如 Directory Manager 条目或复制管理器 (supplier bind DN)条目)条目会很有用,。
有关添加条目所需的 LDIF 更新声明的详情,请参考 第 3.1.4 节 “更新目录条目”
例如,要为 Example1 数据库中的 sn (surname)属性创建存在、相等和子字符串索引:
  1. 运行 ldapmodify 并为新索引添加 LDIF 条目:
    # ldapmodify -a -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
    
    dn: cn=sn,cn=index,cn=Example1,cn=ldbm database,cn=plugins,cn=config
    changetype: add
    objectClass:top
    objectClass:nsIndex
    cn:sn
    nsSystemIndex:false
    nsIndexType:pres
    nsIndexType:eq
    nsIndexType:sub
    nsMatchingRule:2.16.840.1.113730.3.3.2.3.1
    cn 属性包含要索引的属性的名称,在本例中为 sn 属性。条目是 nsIndex 对象类的成员。nsSystemIndex 属性为 false,表示索引对目录服务器操作并不重要。多值的 nsIndexType 属性指定 presence (pres), equality (eq) 和 substring (sub) 索引。每个关键字都必须在单独的行中输入。示例中的 nsMatchingRule 属性指定 Bulgarian 协调顺序的 OID;匹配规则可以指示任何可能的值匹配,如语言或其他格式,如日期或整数。
    您可以使用 nsIndexType 属性中的关键字 none 指定没有为属性维护索引。这个示例通过将 nsIndexType 更改为 none 来禁用 Example1 数据库上的 sn 索引:
    dn: cn=sn,cn=index,cn=Example1,cn=ldbm database,cn=plugins,cn=config
    objectClass:top
    objectClass:nsIndex
    cn:sn
    nsSystemIndex:false
    nsIndexType:none
有关匹配规则及其 OID 的完整列表,请参阅 第 14.3.4 节 “使用匹配规则” 以及索引配置属性,请参阅 Red Hat Directory Server 配置、命令和文件参考
注意
在创建索引时,始终使用属性的主名称(而非属性的别名)。属性的主要名称为架构中属性列出的名字;例如,用户 ID 属性的 uid

13.2.2. 使用 Web 控制台创建索引

创建存在、相等、大约、子字符串或国际索引:
  1. 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录到目录服务器”
  2. 选择实例。
  3. 打开 Database 菜单。
  4. 选择后缀条目。
  5. 打开 Indexes 选项卡。
  6. Add Index 按钮。
  7. 选择要索引的属性、索引类型以及可选匹配的规则。
  8. Create Index