Working with local DB VLV indexes
Local database (DB) virtual list view (VLV) indexes allow a client to request a subset of results from a sorted list that match a specific search base, scope, and filter.
The client can navigate through the list by passing a context back to the server with the virtual list view control. The local DB VLV index can be used only when the client request contains the VLV control and the client has been authorized with an access control instruction (ACI) with a targetcontrol
of 2.16.840.1.113730.3.4.9.
A client request, which includes a virtual list view control, can be successfully processed without a matching local DB VLV index if the search is completely indexed. This is not an efficient means of using VLV since the server has to retrieve each entry twice. |
Viewing the list of local DB VLV indexes
Steps
-
To view the default list of indexes, use
dsconfig
with thelist-local-db-vlv-indexes
option.Example:
In this example, no VLV indexes are defined.
$ bin/dsconfig list-local-db-vlv-indexes --backend-name userRoot
Creating a new local DB VLV index
Steps
-
Use
dsconfig
with thecreate-local-db-vlv-index
option and the--index-name
,--backend-name
, and--set index-type:(propertyValue)
options.If you do not set any property values, the default values are assigned.
Example:
$ bin/dsconfig create-local-db-vlv-index \ --index-name givenName --backend-name userRoot --set base-dn:dc=example,dc=com \ --set scope:whole-subtree --set filter:"(objectclass=*)" \ --set sort-order:givenName
-
Rebuild the index using the
rebuild-index
tool.You must add the
vlv.
prefix to the index name to rebuild the VLV index.Example:
The following command can be run with the server on or offline with the addition of the
--task
and connection options.$ bin/rebuild-index --baseDN dc=example,dc=com --index vlv.givenName
Modifying a VLV index’s configuration
Steps
-
Use
dsconfig
with theset-local-db-vlv-index-prop
option and the--index-name
and--backend-name
properties.Example:
In this example, update the
base-dn
property.$ bin/dsconfig set-local-db-vlv-index-prop --index-name givenName \ --backend-name userRoot --set base-dn:ou=People,dc=example,dc=com
-
Rebuild the index using the
rebuild-index
tool.You must add the prefix
vlv.
to the index name.Example:
The following command can be run with the server on or offline with the addition of the
--task
and connection options.$ bin/rebuild-index --baseDN dc=example,dc=com --index vlv.givenName
Rebuilding a VLV index
When rebuilding specific non-attribute indexes, it is important to include any appropriate prefixes or postfixes with the index name to avoid errors.
Steps
-
When rebuilding a VLV index with the
rebuild-index
tool, the index name must be preceded byvlv.
bin/rebuild-index --index vlv.thisIndexName
For the exact name to use in rebuilding the index, run the
dbtest
tool with thelist-database-containers
option and--backendID
property.bin/dbtest list-database-containers --backendID {backendID}
Deleting a VLV index
About this task
Delete a VLV index using the dsconfig
tool. Before deleting it, check that the index is not being used in any plugin applications.
Steps
-
To remove a VLV index from the database, use
dsconfig
with thedelete-local-db-vlv-index
option.Example:
$ bin/dsconfig delete-local-db-vlv-index --index-name givenName \ --backend-name userRoot
-
To verify the deletion, try to view the VLV index.
Example:
$ bin/dsconfig get-local-db-vlv-index-prop --index-name givenName \ --backend-name userRoot