Sun ONE logo     上一章     目录     索引     文档主页     下一章    
Sun ONE Directory Server 管理指南



第 10 章   管理索引

与书的索引一样,Directory Server 通过将搜索字符串与对目录内容的参考相关联来加速搜索过程。索引是属性值构成的表,它们存储在单独的数据库文件中。目录中的每个后缀都会单独创建索引,并进行管理。在后缀配置中创建索引后,服务器即会自动维护索引。

有关索引及其利弊的简介、nsslapd-allidsthreshold 属性的说明以及如何提高 Directory Server 性能的说明,请参阅 Sun ONE Directory Server 安装和调整指南 中的第 7 章“调整索引”

本章包含以下小节:

索引概述

在相关数据库目录中以文件方式为每个后缀存储索引。每个索引文件包含后缀中为给定属性定义的所有索引。例如,所有为通用名 (cn) 属性维护的索引均存储在 databaseName_cn.db3 文件中。

初始化后缀或使用本章中所述的命令时会创建索引文件。在客户机搜索操作和内部操作过程中,服务器会访问索引以更快地在目录中查找条目。在修改操作过程中,目录必须更新目录内容,并通过更新索引文件来维护索引。

Directory Server 支持下列索引类型:

  • 出现索引 (pres) - 列出了具有特定属性的条目,与属性的值无关。
  • 等式索引 (eq) - 使您能够高效地搜索包含特定属性值的条目。
  • 近似索引 (approx) - 通过使用 ~= 过滤运算符提供了高效的“音似”搜索功能。例如,近似索引对于搜索部分名称或拼错的名称很有用。Directory Server 使用变音位语音算法的一个变体来执行近似索引搜索。


  • 注意

    Directory Server 5.2 中的变音位语音算法仅支持 US-ASCII 字母。因此,近似索引只能用于英语值。



  • 子串索引 (sub) - 提供高效的属性值子字符串搜索,如 cn=*john*。这种索引的维护成本很高,因为每个值都有许多可能的子字符串。
  • 子字符串索引中每个条目的字符数不能少于两个。

  • 匹配规则索引 - 通过将本地化的匹配规则(也称为排序顺序)的 OID 与要索引的属性相关联,以加快在国际目录中的搜索速度。
  • 浏览索引 - 缩短在使用虚拟列表视图 (VLV) 控件执行搜索时的响应时间。可以在目录树中任意的分支点上创建浏览索引,以便提高那些密集填充的子树(例如 ou=People,dc=example,dc=com)的显示性能。

系统索引

系统索引是那些不能被删除或修改的索引。它们是 Directory Server 正常、有效地运作所必需的。下表列出了每个后缀中自动创建的系统索引:

表 10-1    每个后缀中的系统索引 

属性

Eq

Pres

目的

aci

X

允许 Directory Server 迅速获取目录中维护的访问控制信息。

entrydn

X

加快基于 DN 搜索的条目检索。

nsUniqueId

X

用于搜索特定条目。

nscpEntryDN

X

Directory Server 内部使用,用于复制。

nsds5ReplConflict

X

X

用于帮助查找复制冲突。

numsubordinates

X

Directory Server 控制台 用来增强“目录”标签上的显示性能。

objectClass

X

用来帮助加快目录中的子树搜索速度。

parentID

X

增强单级搜索期间的目录性能。

默认索引

在目录中创建新后缀时,服务器在相应的数据库目录中配置一组默认的索引。可以根据索引编制的需要对默认索引进行修改,但在解除索引配置之前,应该确保企业中没有任何服务器插件或者其他服务器依赖于该已编制索引的属性。

要修改创建新后缀时将使用的默认索引集,请参阅“修改默认索引集”

下表列出了 Directory Server 中预配置的默认索引:

表 10-2    每个新后缀中的默认索引 

属性

Eq

Pres

Sub

目的

cn

X

X

X

提高最常用的用户目录搜索类型的性能。

givenName

X

X

X

提高最常用的用户目录搜索类型的性能。

mail

X

X

X

提高最常用的用户目录搜索类型的性能。

mailAlternateAddress

X

由 Sun ONE Messaging Server 使用。

mailHost

X

由 Sun ONE Messaging Server 使用。

member

X

提高 Sun ONE 服务器的性能。引荐完整性插件也使用该索引。详细信息,请参阅“维护引荐完整性”

nsCalXItemId

X

X

X

由 Sun ONE Calendar Server 使用。

nsLIProfileName

X

由 Sun ONE Messaging Server 的漫游功能使用。

nsRoleDN

X

提高基于角色的操作的性能。

nswcalCALID

X

由 Sun ONE Calendar Server 使用。

owner

X

提高 Sun ONE 服务器的性能。引荐完整性插件也使用该索引。详细信息,请参阅 Sun ONE Directory Server 管理指南

pipstatus

X

由 Sun ONE Servers 使用。

pipuid

X

由 Sun ONE Servers 使用。

seeAlso

X

提高 Sun ONE 服务器的性能。引荐完整性插件也使用该索引。详细信息,请参阅“维护引荐完整性”

sn

X

X

X

提高最常用的用户目录搜索类型的性能。

telephoneNumber

X

X

X

提高最常用的用户目录搜索类型的性能。

uid

X

提高 Sun ONE 服务器的性能。

uniquemember

X

提高 Sun ONE 服务器的性能。引荐完整性插件也使用该索引。详细信息,请参阅“维护引荐完整性”

数据库中的标准索引文件

由于维护默认索引和其他内部索引机制的需要,Directory Server 还维护特定的标准索引文件。默认情况下存在以下标准索引。所以无需再生成它们:

  • databaseName_id2entry.db3 - 包含目录条目的实际数据库。所有其他的数据库文件都可以由它来重建。
  • databaseName_id2children.db3 - 限制单级搜索的范围,所谓单级搜索是指检查某个条目的直接子条目的搜索。
  • databaseName_dn.db3 - 控制子树搜索的范围,所谓子树搜索是指检查某个条目以及它下面的子树中所有条目的搜索。
  • databaseName_dn2id.db3 - 通过将某个条目的标识名称映射到它的 ID 来有效地开始所有的搜索。

属性名称快速参考表

下表列出了具有主名称或真实名称,以及别名的所有属性。创建索引时,请务必使用主名称。

表 10-3    主属性名称及其别名 

主属性名称

属性的别名

authorCn

documentAuthorCommonName

authorSn

documentAuthorSurname

c

countryName

cn

commonName

co

friendlyCountryName

dc

domainComponent

dn

distinguishedName

drink

favoriteDrink

facsimileTelephoneNumber

fax

l

localityName

labeledUri

labeledUrl

mail

rfc822mailbox

mobile

mobileTelephoneNumber

o

organizationName

ou

organizationalUnitName

pager

pagerTelephoneNumber

sn

surname

st

stateOrProvinceName

street

streetAddress

ttl

timeToLive

uid

userId

管理索引

本节说明如何利用 Directory Server 控制台和命令行来为特定的属性创建和删除出现、等式、近似、子字符串和国际索引。请参阅“管理浏览索引”以了解进行虚拟列表视图 (VLV) 操作前所需的单独步骤。



注意

因为索引对每个后缀都是特定的,所以需要记住在每个后缀配置中都创建新索引。

使用控制台创建新后缀时,可以选择复制现有后缀的索引配置。



创建新的索引之前,请权衡由使用索引产生的利与弊。敬请牢记:

  • 近似索引不应该用于那些通常包含数字的属性(如电话号码),因为它们在处理此类属性时的效率不高。
  • 子字符串索引不能用于二进制属性。等式索引不应用于很大的值,如计划包含二进制数据的属性,例如 jpegPhoto
  • 索引的维护需要很多资源,所以应该只为那些经常搜索的属性编制索引。条目的创建将需要更多的 CPU 时间,因为服务器必须检查所有已编制索引的属性,并为新条目中所包含的每个属性生成新的条目。
  • 每个索引文件的大小都与目录的内容成正比。
  • 在搜索请求中仍然可以指定未编制索引的属性,但其搜索性能无法与已编制索引的搜索相提并论,这还要取决于搜索的类型。

使用控制台管理索引

如果计划在很多属性上修改或添加索引,则应首先将后缀设为只读,然后将其内容导出到 LDIF。这样通过从 LDIF 文件重新初始化后缀将加快后缀的重新索引。

  1. 在 Directory Server 控制台的顶级“配置”标签上,展开“数据”节点,并选择要索引的后缀。然后在右侧面板中,选择“索引”标签。
  2. 不能修改“系统索引”表。在“附加索引”表中,添加、修改或删除属性的索引。

  3. 要在一个仍未索引的属性上添加索引,请单击“添加属性”按钮。在显示的对话框中,选择一个或多个属性编制索引,并单击“确定”。
  4. 新属性显示在“附加索引”表中。

  5. 要修改属性的索引,请选中或取消选中想在“附加索引”表中为该属性维护的每种索引类型的复选框。
  6. 如果想要创建一个包含非英语值的属性的索引,请在“匹配规则”字段中输入想要使用的排序顺序的 OID。
  7. 通过列举多个由逗号分隔的 OID(而不是空格),您可以使用多种语言来为属性编制索引。有关受支持的区域和其相关排序顺序的 OID 的列表,请参阅 Sun ONE Directory Server 参考手册 中的附录 C“目录国际化”

  8. 要删除一个属性的所有索引,请在表中选择它所在的行并单击“删除属性”按钮。
  9. 单击“保存”,保存新索引配置。
  10. 如果删除了一个属性的所有索引,服务器将删除该属性的索引文件并结束配置。如果修改了属性的索引或添加了一个新索引,请继续执行以下步骤。

  11. 警告对话框通知您必须更新数据库文件以开始使用新索引。您可重新索引后缀或重新初始化后缀。
  12. 如果仅添加或修改了一个或两个索引,或后缀必须可用,则应重新索引后缀。单击“重新索引后缀”按钮,显示重新索引对话框。默认情况下,会选定您修改过或添加到索引配置中的属性。单击“确定”,开始重新编制这些属性的索引。重新为带有数百万条条目的目录编制许多属性的索引可能花费数小时的时间,但是重新编制索引期间后缀将始终保持联机。
  13. 如果添加或修改多个属性的索引,且从此后缀导出了最近的 LDIF 文件,请单击“初始化后缀”按钮。在“初始化后缀”对话框中,输入或浏览到 LDIF 文件的路径和名称,然后单击“确定”。服务器将从 LDIF 文件重新初始化后缀,并根据新的配置创建所有索引。根据目录大小的具体情况,重新初始化后缀通常比重新编制两个或更多属性的索引要快,但是后缀在初始化过程中不可用。
  14. 如果不重新初始化后缀或重新索引后缀,则所有数据将仍然可用,但是将不会创建新的索引,也不会提高目录访问性能。

如果重新初始化后缀或重新索引后缀,对您添加的所有新数据以及目录中现有的数据,新索引立即生效。不需要重新启动服务器。

从命令行管理索引

从命令行创建或修改索引涉及两个步骤:

  • 使用 ldapmodify 命令行公用程序添加或修改索引配置条目。索引在每个后缀中单独配置,且索引配置条目与相应的数据库配置一起存储。
  • 运行 db2index.pl perl 脚本(Solaris 软件包中为 directoryserver db2index-task)以生成由服务器来维护的新索引集。


  • 警告

    千万不要删除系统索引,因为这样将会极大地影响 Directory Server 的性能。系统索引位于 cn=index,cn=databaseName,cn=ldbm database,cn=plugins,cn=config 条目和 cn=default indexes,cn=config,cn=ldbm database,cn=plugins,cn=config 条目中。

    删除默认索引时需要小心,因为这也有可能会影响 Directory Server 的工作方式。



创建索引配置条目

要为还没有编制索引的属性创建索引,则必须在相应的数据库配置中为该属性创建新条目。

索引配置条目具有下列 DN:

cn=attributeName,cn=index,cn=databaseName,cn=ldbm database,
 cn=plugins,cn=config

其中的 databaseName 是与您希望创建索引的后缀相对应的数据库名称。例如,以下命令将为 sn (surname) 属性的值创建法语的出现、等式、子字符串和“音似”索引:

ldapmodify -a -h 主机 -p 端口 -D "cn=Directory Manager" -w 口令
dn:cn=sn,cn=index,cn=databaseName,cn=ldbm database,
 cn=plugins,cn=config
objectClass:top
objectClass:nsIndex
cn:sn
nsSystemIndex:false
nsIndexType:pres
nsIndexType:eq
nsIndexType:sub
nsIndexType:approx
nsMatchingRule: 1.3.6.1.4.1.42.2.27.9.4.76.1

索引配置条目具有 nsIndex 对象类,且必须具有 nsSystemIndex 属性,其值必须为 false。无法创建新系统索引。将只维护 Directory Server 内部定义的现有系统索引。

nsIndexType 属性的值列出了将为给定属性进行维护的索引。使用上面显示的任意值定义相应的索引。

也可以使用单值“none”显式地禁用属性的索引,例如为了临时禁用属性的索引。如果索引配置条目中不包括 nsIndexType 属性,则默认情况下将维护所有索引。

可选的 nsMatchingRule 属性包含用于国际化索引的语言排序顺序的 OID。有关受支持的区域和其相关的排序顺序的 OID 的列表,请参阅 Sun ONE Directory Server 参考手册 中的附录 C“目录国际化”

有关索引配置属性的详细信息,请参阅 Sun ONE Directory Server 参考手册 第 5 章中的“默认索引属性”



注意

创建索引时应该使用属性的主名称,而不是它的别名。属性的主名称是模式中列出的属性的第一个名称,如 userid 属性的主名称为 uid。有关属性主名称和别名的完整列表,请参阅表 10-3



修改索引配置条目

要配置已经在属性上定义的索引,请修改相应的索引条目。例如,在先前定义的 sn 索引配置上执行以下命令将会删除“音似”索引,并将语言更改为加拿大法语:

ldapmodify -h 主机 -p 端口 -D "cn=Directory Manager" -w 口令
dn:cn=sn,cn=index,cn=databaseName,cn=ldbm database,
 cn=plugins,cn=config
changetype:modify
delete:nsIndexType
nsIndexType:approx
-
replace:nsMatchingRule
nsMatchingRule: 1.3.6.1.4.1.42.2.27.9.4.78.1
^D

运行 db2index.pl 脚本

创建索引条目后,将附加索引类型添加到现有的索引条目,或是修改了其排序顺序,请运行 db2index.pl 脚本(Solaris 软件包中为 directoryserver db2index-task),以生成新的索引。该脚本读取后缀的内容,并根据其配置条目重新编制给定属性的索引。

当此命令运行时,后缀的内容在服务器上保持可用,但是将不会对搜索编制索引,直到脚本完成。重新编制索引是一项相当消耗资源的任务,它可能会影响服务器上其他操作的性能。根据目录大小的具体情况,重新初始化后缀通常比重新编制两个或更多属性的索引要快,但是该后缀在初始化过程中不可用。详细信息,请参阅“重新初始化后缀”

此脚本的命令依平台而定:

Solaris 软件包

# /usr/sbin/directoryserver db2index-task

Windows 平台

cd ServerRoot
bin\slapd\admin\bin\perl slapd-serverID\db2index.pl

其他安装

# ServerRoot/slapd-serverID/db2index.pl

下列示例在与 databaseName 相对应的后缀中重新生成 sn 索引。

UNIX shell 脚本:

# use directoryserver db2index-task in the Solaris Packages Installations
/var/Sun/mps/slapd-example/db2index.pl \
  -D "cn=Directory Manager" -w 口令 -n databaseName -t sn

Windows 批处理文件:

C:\Program Files\Sun\MPS\bin\slapd\admin\bin\perl.exe
  C:\Program Files\Sun\MPS\slapd-example\db2index.pl
    -
D "cn=Directory Manager" -w 口令 -n databaseName -t sn

详细信息,请参阅 Sun ONE Directory Server 参考手册 第 2 章的 db2index.pl

删除属性的所有索引

如果希望删除为属性配置的所有索引,可以删除其配置条目和数据库文件。例如,下列命令将为名为 databaseName 的数据库中的 sn 属性解除对所有索引的配置。

ldapdelete -h 主机 -p 端口 -D "cn=Directory Manager" -w 口令 \
"cn=sn,cn=index,cn=databaseName,cn=ldbm database,cn=plugins, \
 cn=config"

删除该条目后,sn 属性的索引将不再在与 databaseName 数据库对应的后缀中进行维护。也可以删除相应的索引文件以节约磁盘空间,因为服务器将不再使用它。在此示例中,您可以删除以下文件:

ServerRoot/slapd-serverID/db/databaseName/databaseName_sn.db3

重新索引后缀

如果索引文件被损坏,您将需要重新索引后缀以在相应的数据库目录中重新创建索引文件。有两种方法使用 Directory Server 控制台重新索引后缀,即重新编制索引或重新初始化。

重新索引后缀

重新索引后缀时,服务器会检查它包含的所有条目,并重新生成索引文件。重新编制索引过程中,后缀的内容可以用于读取和写入操作。但是,服务器必须为重新编制索引的每个属性扫描整个后缀,对于带有数百万条条目的后缀,这将花费多达数小时的时间,具体情况将取决于您配置的索引。此外,在重新编制索引过程中,索引将不可用,服务器性能也将受影响。

要使用控制台重新编制后缀索引,请执行以下操作:

  1. 在 Directory Server 控制台的顶级“配置”标签上,展开“数据”节点,显示要重新编制索引的后缀。
  2. 右键单击后缀配置节点,从弹出菜单中选择“重新编制索引”。或者,可以左键单击节点将其选中,然后从“对象”菜单中选择“重新编制索引”。
  3. 将显示“重新索引后缀”对话框,该对话框带有在选定后缀中编制索引的所有属性的列表。

  4. 选中要重新编制索引的每个属性旁的复选框。使用“全部选中”和“全部不选”按钮,帮助您作出选择。因为给定属性的所有索引都存储在同一个数据库文件中,所以必须一起重新编制所有这些索引。
  5. 单击“确定”。控制台将显示确认消息,提醒您可能返回意外的搜索结果,且重新编制索引过程中性能会受影响。
  6. 单击“是”,开始重新编制索引。
  7. 控制台显示有关重新编制索引的所有信息的对话框。完成后关闭该对话框。

要从命令行重新索引后缀,请遵循“运行 db2index.pl 脚本”中的说明,并指定要重新生成索引文件的所有属性。

重新初始化后缀

重新初始化后缀时,替换其内容,并创建新的索引文件作为新内容导入。重新初始化后缀通常比重新编制一个以上属性的索引要快,因为加载条目时,所有属性都在一个通道中进行索引。但是,重新初始化后缀时后缀不可用。

可以使用 Directory Server 控制台或从命令行执行以下所有步骤:

  1. “设置访问权限和引荐”中所述,将后缀设为只读。首先必须使后缀变为不可写入,以便在导出内容后不会进行任何修改。
  2. “使用控制台将单一后缀导出到 LDIF”中所述,将整个后缀导出到 LDIF 文件。
  3. “初始化后缀”中所述,将同一 LDIF 文件导入以重新初始化后缀。
  4. 初始化期间,后缀将不可用。当初始化完成后,所有已配置的索引可供使用。

  5. “设置访问权限和引荐”中所述,使后缀再次变为可写。

修改默认索引集

创建新后缀时使用的默认索引集在以下条目中定义:

cn=default indexes,cn=config,cn=ldbm database,
 cn=plugins,cn=config

无论何时使用控制台或从命令行创建后缀,默认索引定义条目将按原样复制以成为相应数据库的最初索引配置。

默认索引集只能使用命令行公用程序进行配置。默认索引条目具有与“从命令行管理索引”中描述的索引配置条目完全相同的语法。例如,使用以下 ldapmodify 命令添加默认索引配置条目:

ldapmodify -a -h 主机 -p 端口 -D "cn=Directory Manager" -w 口令
dn:cn=drink,cn=default indexes,cn=config,cn=ldbm database,
 cn=plugins,cn=config
objectClass:top
objectClass:nsIndex
cn:drink
nsSystemIndex:false
nsIndexType:eq
nsIndexType:sub
nsMatchingRule: 1.3.6.1.4.1.42.2.27.9.4.76.1

添加此条目后,所有新的后缀将具有 drink 属性的值,该属性已编制了法语的等式和子字符串搜索的索引。

要修改或删除默认索引条目,请使用 ldapmodifyldapdelete 命令编辑 cn=default indexes,cn=config,cn=ldbm database,cn=plugins,cn=config 中的索引集。

管理浏览索引

浏览索引是仅用于要求服务器端排序或虚拟列表视图 (VLV) 结果的搜索操作的特殊索引。使用浏览索引可提高需要对大量结果进行服务器端排序的搜索的性能。根据目录配置,服务器可拒绝在没有定义浏览索引的情况下执行要求排序的搜索。这样可防止大量排序操作使服务器资源超过负载。

浏览索引适用于作为搜索基准的条目,且必须为在已排序的请求中使用的每个搜索过滤器创建单独的索引。例如,如果客户机应用程序经常请求所有用户的已排序列表,则应为客户机使用的过滤器字符串创建 ou=People 的浏览索引。

与附加索引一样,在维护浏览索引所需的更新操作期间将损失性能。应仔细计划和测试浏览索引的部署。

用于控制台的浏览索引

Directory Server 控制台经常执行整个目录的搜索以刷新其面板的内容。如果已配置控制台为目录树中的条目排序,如“目录树视图选项”中所述,则应为控制台创建浏览索引。

用于控制台的浏览索引专用于由控制台执行的搜索。它们也是使用控制台创建的。要为控制台创建浏览索引,请执行以下操作:

  1. 在 Directory Server 控制台的顶级“目录”标签上,浏览目录树以显示需要排序的大型子树的父级,如包含数千个用户条目的 ou=People,dc=example,dc=com
  2. 右键单击父条目并从弹出菜单中选择“创建浏览索引”。或者,左键单击条目以选定,并从“对象”菜单中选择“创建浏览索引”。
  3. “创建浏览索引”对话框显示索引创建的状态。控制台创建如下所示的浏览索引配置条目,然后生成索引文件的内容。

  4. 单击“关闭”,关闭“创建浏览索引”对话框。
  5. 任何控制台刷新操作将使新索引立即生效,且将维护添加到目录中的任何新数据。不需要重新启动服务器。

用于控制台的浏览索引配置由以下条目组成。vlvSearch 条目定义将被编制索引的搜索的基准、范围和过滤器。vlvIndex 条目的 vlvSort 属性按照属性排序的顺序显示“目录”标签中支持排序的属性:

dn:cn=MCC entryDN,cn=databaseName,cn=ldbm database,
 cn=plugins,cn=config
objectClass:top
objectClass:vlvSearch
cn:MCC entryDN
vlvBase:"entryDN"
vlvScope: 1
vlvFilter:(|(objectclass=*)(objectclass=ldapsubentry))

dn:cn=by MCC entryDN, cn=MCC entryDN,cn=databaseName,
 cn=ldbm database,cn=plugins,cn=config
objectClass:top
objectClass:vlvIndex
cn:by MCC entryDN
vlvSort:cn givenname o ou sn uid

要删除 Directory Server 控制台的浏览索引,请执行以下操作:

  1. 在 Directory Server 控制台的顶级“目录”标签上,浏览目录树,显示已在其中创建浏览索引的条目。
  2. 右键单击条目并从弹出菜单中选择“删除浏览索引”。或者,左键单击条目以选定,并从“对象”菜单中选择“删除浏览索引”。此菜单项仅当所选条目具有用于控制台的浏览索引时才可用。
  3. 这时将出现“删除浏览索引”对话框,要求您确认对索引的删除操作。单击“是”,删除浏览索引。

用于客户机搜索的浏览索引

必须手动定义为排序客户机搜索结果而定制的浏览索引。从命令行创建浏览索引或者虚拟列表视图 (VLV) 索引涉及两个步骤:

  • 使用 ldapmodify 公用程序或 Directory Server 控制台的“目录”标签添加新的浏览索引条目或者编辑现有浏览索引条目。
  • 运行 vlvindex(Solaris 软件包中为 directoryserver vlvindex)脚本以生成由服务器维护的新浏览索引集。

指定浏览索引条目

浏览索引是特定于给定基准条目及其子树上的给定的搜索。浏览索引配置是在包含条目的后缀的数据库配置中定义的。



注意

不能在已链接的后缀中创建浏览索引,只能在本地后缀和子后缀中创建。



有两个条目用于配置浏览索引。第一个使用 vlvSearch 对象类并指定其结果将被编制索引的搜索操作的基准、范围和过滤器。第二个条目是第一个条目的子级,并使用 vlvIndex 对象类指定要排序的属性和以何种顺序排序。

以下示例使用 ldapmodify 公用程序创建两个浏览索引配置条目:

ldapmodify -a -h 主机 -p 端口 -D "cn=Directory Manager" -w 口令
dn:cn=Browsing ou=People, cn=databaseName,
 cn=ldbm database,cn=plugins,cn=config
objectClass:top
objectClass:vlvSearch
cn:Browsing ou=People
vlvbase:ou=People,dc=example,dc=com
vlvscope: 1
vlvfilter:(objectclass=inetOrgPerson)

dn:cn=Sort rev employeenumber, cn=Browsing ou=People,
 cn=databaseName,cn=ldbm database,cn=plugins,cn=config
objectClass:top
objectClass:vlvIndex
cn:Sort rev employeenumber
vlvSort:-employeenumber
^D

vlvscope 可为 0 代表基准条目本身,或为 1 代表基准条目的直接子条目,或为 2 代表以基准条目为根的整个子树。vlvfilter 是将用于客户机搜索操作的同一 LDAP 过滤器。因为所有的浏览索引条目都位于同一位置,所以建议使用描述性的 cn 值命名浏览索引。

每个 vlvSearch 条目必须至少具有一个 vlvIndex 条目。vlvSort 属性是定义要排序的属性和排序顺序的属性名称的列表。属性名称前面的短横线 (-) 表示反排序。可通过定义多个 vlvIndex 条目为搜索定义多个索引。在前面的示例中,可添加以下条目:

ldapmodify -a -h 主机 -p 端口 -D "cn=Directory Manager" -w 口令
dn:cn=Sort sn givenname uid, cn=Browsing ou=People,
 cn=databaseName,cn=ldbm database,cn=plugins,cn=config
objectClass:top
objectClass:vlvIndex
cn:Sort sn givenname uid
vlvSort:sn givenname uid
^D

要修改浏览索引配置,请编辑相应的 vlvSearchvlvIndex 条目。要删除浏览索引以使其不再由服务器维护,请删除单个的 vlvIndex 条目,或者如果只有一个浏览索引,则删除 vlvSearch 条目和 vlvIndex 条目。当删除 vlvIndex 条目时,也可删除相应的数据库文件,例如

ServerRoot/slapd-serverID/db/dbName/dbName_vlv#Sortsngivennameuid.db3

运行 vlvindex 命令

创建浏览索引条目或修改现有浏览索引条目后,必须运行 vlvindex 命令(Solaris 软件包中为 directoryserver vlvindex)以生成新的浏览索引集。此命令将扫描目录内容并为浏览索引创建数据库文件。

要生成浏览索引,请使用以下命令:

Solaris 软件包

# /usr/sbin/directoryserver vlvindex

其他安装

# installDir/slapd-serverID/vlvindex

以下示例生成前面小节中定义的浏览索引:

# vlvindex -n databaseName -T "Browsing ou=People"

表 10-4    示例中使用的 vlvindex 选项的说明

选项

说明

-n

指定包含需要编制索引的条目的数据库名称。

-T

指定相应浏览索引的 vlvSearch 条目的命名属性值。将生成所有与给定的 vlvSearch 条目的 vlvIndex 条目相对应的索引。

详细信息,请参阅 Sun ONE Directory Server 参考手册 第  2 章中的“vlvindex”


上一章     目录     索引     文档主页     下一章    
版权所有 2003 Sun Microsystems, Inc. 保留所有权利。