13.7. 删除索引

本节论述了如何从索引中删除属性和索引类型。

13.7.1. 从默认索引条目中删除属性

使用 Directory 服务器的默认设置时,默认索引条目中列出的多个属性(如 sn )会被索引。以下属性是默认索引的一部分:

表 13.1. 默认索引属性

aci
cn
entryusn
givenName
mail
mailAlternateAddress
mailHost
成员
memberOf
nsUniqueId
ntUniqueId
ntUserDomainId
numsubordinates
objectClass
owner
parentid
seeAlso
sn
telephoneNumber
uid
uniqueMember
警告
删除系统索引可能会显著影响目录服务器的性能。
例如,要从默认索引中删除 sn 属性:
  1. cn=default index,cn=config,cn=ldbm database,cn=plugins,cn=config 条目中删除属性:
    # ldapdelete -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
    cn=sn,cn=default indexes,cn=config,cn=ldbm database,cn=plugins,cn=config
    如果您没有从此条目中删除属性,则 sn 属性的索引会在服务器重启后自动重新创建并损坏。
  2. 删除 cn=attribute_name,cn=index,cn=userRoot,cn=ldbm database,cn=plugins,cn=config 条目。详情请查看 第 13.7.2 节 “从索引中删除属性”

13.7.2. 从索引中删除属性

在某些情况下,您希望从索引中删除一个属性。本节介绍了使用命令行并使用 Web 控制台的步骤。

13.7.2.1. 使用命令行从索引中删除属性

从索引中删除属性:
  1. 如果要删除的属性列在 cn=default index,cn=config,cn=ldbm database,cn=plugins,cn=config 默认索引条目中,请先将其从此条目中删除。详情请查看 第 13.7.1 节 “从默认索引条目中删除属性”
  2. 从索引中删除属性。例如:
    # ldapdelete -D "cn=Directory Manager" -W -p 389 -h server.example.com -x
    cn=sn,cn=index,cn=database_name,cn=ldbm database,cn=plugins,cn=config
    删除条目后,Directory 服务器不再为属性维护索引。
  3. 重新创建属性索引。请参阅 第 13.3 节 “为现有数据库创建新索引”

13.7.2.2. 使用 Web 控制台从索引中删除属性

从索引中删除属性:
  1. 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录到目录服务器”
  2. 选择实例。
  3. 打开 Database 菜单。
  4. 选择后缀条目。
  5. 打开 Indexes 选项卡。
  6. 单击您要删除索引的属性旁边的 Actions 按钮,然后选择 Delete Index
  7. 单击 Yes 以确认。

13.7.3. 使用命令行删除索引类型

例如,要从索引中删除 sn 属性 的子 索引类型:
  1. 删除索引类型:
    # ldapmodify -D "cn=Directory Manager" -W -x
    
    dn: cn=sn,cn=index,cn=database_name,cn=ldbm database,cn=plugins,cn=config
    changetype: modify
    delete: nsIndexType
    nsIndexType: sub
    删除索引条目后,Directory 服务器不再为属性维护子字符串索引。
  2. 重新创建属性索引。请参阅 第 13.3 节 “为现有数据库创建新索引”

13.7.4. 删除浏览器索引

本节论述了如何从数据库中删除浏览条目。

13.7.4.1. 使用命令行删除浏览器索引

字母浏览索引和虚拟列表视图(VLV)的条目相同。本节介绍了删除浏览索引涉及的步骤。
使用命令行删除浏览索引或虚拟列表视图索引:
  1. 从 cn=index ,cn=database_name,cn=ldbm database,cn=plugins,cn=config 条目中删除浏览索引条目。例如:
    # ldapdelete -D "cn=Directory Manager" -W -p 389 -h server.example.com -x "cn=MCC ou=People dc=example dc=com,cn=userRoot,cn=ldbm database,cn=plugins,cn=config" "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"
    删除两个浏览索引条目后,Directory 服务器不再维护这些索引。
  2. 重新创建属性索引。请参阅 第 13.3 节 “为现有数据库创建新索引”