As the number of entries in your directory grows, it can make sense
not to maintain indexes for particular values. For example, every entry
in the directory has the value top for the
objectClass attribute, so maintaining a list of entries
that match the filter (objectClass=top) is not a
reasonable use of resources. In a very, very large directory, the same can
be true for (givenName=John) and
(sn=Smith).
In an index, each index key points to a list of entries that
are candidates to match. For the objectClass index key
that corresponds to =top, the list of entries can
include every entry in the directory.
OpenDJ directory server therefore defines an index entry limit. When the number of entries that an index key points to exceeds the index entry limit, OpenDJ stops maintaining the list of entries for that index key.
The default index entry limit value is 4000. 4000 is usually plenty
large for all index keys, except for objectClass indexes.
If you have clients performing searches with filters such as
(objectClass=person), you might suggest that they adjust
the search to be more specific, such as
(&(mail=username@maildomain.net)(objectClass=person)),
so that the server can use an index, in this case equality for mail, to
limit the number of candidate entries to check for matches.
You can change the index entry limit on a per index basis.
Example 8.7. Change Index Entry Limit
The following example changes the index entry limit for the
objectClass index, and then rebuilds the index for the
configuration change to take effect.
$ dsconfig set-local-db-index-prop --port 4444 --hostname opendj.example.com --bindDN "cn=Directory Manager" --bindPassword password --backend-name userRoot --index-name objectClass --set index-entry-limit:5000 --trustAll --no-prompt $ rebuild-index --port 4444 --hostname opendj.example.com --bindDN "cn=Directory Manager" --bindPassword password --baseDN dc=example,dc=com --index objectclass --start 0 Rebuild Index task 20110607160349596 scheduled to start Jun 7, 2011 4:03:49 PM
Alternatively, you can configure the index entry limit for all
indexes stored in a backend by using the dsconfig
set-backend-prop command with the --backend-name
options.
backendName --set
index-entry-limit:limitValue

