Index Manager

Index Manager is an attribute of the Server object that lets you manage database indexes. These indexes are used by eDirectory to significantly improve query performance.

Novell eDirectory ships with a set of indexes that provide basic query functionality. These default indexes are for the following attributes:

CN

Aliased Object Name

dc

Obituary

Given Name

Member

Surname

Reference

uniqueID

Equivalent to Me

GUID

NLS: Common Certificate

cn_SS

Revision

uniqueID_SS

extensionInfo

ldapAttributeList

ldapClassList

You can also create customized indexes to further improve eDirectory performance in your environment. For example, if your organization has implemented a new LDAP application that looks up an attribute not indexed by default, it might be useful to create an index for that attribute.

NOTE:  Although indexes improve search performance, additional indexes also add to directory update time. As a general rule, create new indexes only if you suspect performance issues are related to a particular directory lookup.

Using Novell iManager, you can create or delete indexes. You can also view and manage the properties of an index, including the index name, state, type, rule, and attribute indexed.

Use the Predicate Statistics data, available only in ConsoleOne, to know what additional indexes might be valuable for your environment. See Predicate Data.


Creating an Index

  1. In Novell iManager, click the Roles and Tasks button Roles and Tasks button.

  2. Click eDirectory Maintenance > Index Management.

  3. Select a server from the list of available servers.

  4. On the Modify Indexes page, click Create.

  5. Enter the Index Name.

    If you do not enter an index name, the attribute is automatically assigned as the index name.

    IMPORTANT:  The $ character is used as a delimiter for attribute values. If you use the $ character in your index name, you must use a preceding backslash (/) character to escape the $ character when working with indexes via LDAP.

  6. Select an attribute.

  7. Select the index rule.

    • Value matches the entire value or the first part of the value of an attribute. For example, value matching could be used to find entries with a LastName that is equal to "Jensen" and entries with a LastName that begins with "Jen."

    • Presence requires only the presence of an attribute rather than specific attribute values. A query to find all entries with a Login Script attribute would use a presence index.

    • Substring matches a subset of the attribute value string. For example, a query to find a LastName with "der" would return matches for Derington, Anderson, and Lauder.

      A substring index is the most resource-intensive index to create and maintain.

  8. Click OK to update the index table.

  9. Click Apply to restart Limber as a background process and initiate the change.


Deleting an Index

Indexes might outlive their usefulness. You can delete user-defined and auto-created indexes that are no longer a benefit. Use Predicate Statistics to help you know which indexes might be less useful. See Predicate Data for more information.

  1. In Novell iManager, click the Roles and Tasks button Roles and Tasks button.

  2. Click eDirectory Maintenance > Index Management.

  3. Select a server from the list of available servers.

  4. On the Modify Indexes page, select the user- or auto-added index you want to delete.

  5. Click Delete to update the index table.

  6. Click Apply to restart Limber as a background process and initiate the change.


Taking an Index Offline

During peak times you might want to tune performance by temporarily taking indexes offline. For example, to achieve additional bulk-load speed, you might want to suspend all of the user-defined indexes. Because each object addition or modification requires updating defined indexes, having all indexes active might slow down bulk-loading of data. After the bulk-load is completed, the indexes can be brought online again.

  1. In Novell iManager, click the Roles and Tasks button Roles and Tasks button.

  2. Click eDirectory Maintenance > Index Management.

  3. Select a server from the list of available servers.

  4. On the Modify Indexes page, select the indexes you want to take offline, then click Change State.

    The index state changes from Online to Offline in the display table. An index can be in any of the following states:

    • Online: Currently running.

    • Offline: Suspended; can be started again by clicking Bring Online.

    • New: Waiting to move to Online.

    • Deleted: Waiting to be removed from the index table.

  5. Click Apply.


Managing Indexes on Other Servers

If you've found a particular index to be useful on one server and you see the need for this index on another server, you can copy the index definition from one server to another. In reviewing predicate data, you might also find just the opposite case: an index that was meeting a need for several servers is no longer useful on one of these servers. In that case, you could delete the index from the single server that isn't benefitting from the index.

Index Manager allows you to target a single instance of an index without impacting all instances.

  1. In Novell iManager, click the Roles and Tasks button Roles and Tasks button.

  2. Click eDirectory Maintenance > Index Management.

  3. Select a server from the list of available servers.

  4. To copy an index definition to another server on the same tree, click Modify Index Location.

  5. Select the index definition you want to copy.

    When you select an index, servers in the tree providing that index are listed.

  6. Use the columns provided to move a copy of the index to the desired server.

  7. Click Apply.


Using the Novell Import Conversion Export Utility to Manage Indexes

You can use the Novell Import Conversion Export utility to create or delete indexes.

You must use an LDIF file to create or delete indexes. After the LDIF file is imported, you can trigger Limber to initiate the indexing activity; otherwise, indexing takes place when Limber triggers automatically.

To specify an index in an LDIF file, you must supply values, because the following cases ignore strings that are separated by a dollar ($) sign.

Order String Description

1

Index version

Reserved for future use. In eDirectory, this should always be set to zero (0).

2

Index name

Specifies the user-defined name for the index, such as .Family Name. or .Zip Code. The string should not contain the dollar ($) sign.

3

Index state

Specifies the state of the index. When defining an index, this field should be set to 2 (online). eDirectory supports the following values:

  • 0 - Suspended, which indicates the index is not used in queries and is not updated.
  • 1 - Bringing Online, which indicates the index is in the process of being created.
  • 2 - Online, which indicates the index is up and working.
  • 3 - Pending Creation, which indicates the index has been defined and is waiting for the background process to run.

The background process changes the state after the building begins.

4

Index rule

Specifies the type of matching:

  • 0 - Value Matching, which optimizes queries that involve the entire value or the first part of the value. For example, a query for all entries with a surname equal to Jensen or beginning with Jen.
  • 1 - Presence Matching, which optimizes queries that involve only the presence of an attribute. For example, a query for all entries with a surname attribute.
  • 2 - Substring Matching, which optimizes queries that involve a match of a few characters. For example, a query for all entries with a surname containing .der. This query returns entries with the surnames of Derington, Anderson, and Lauder.

5

Index type

Specifies who created the index. When defining an index, you must set this value to 0. eDirectory supports the following values:

  • 0 - User Defined
  • 1 - Added on Attribute Creation
  • 2 - Required for Operation
  • 3 - System Index

6

Index value state

Specifies the source of the index. When defining an index, set this string to 1. eDirectory supports the following values:

  • 0 - Uninitialized
  • 1 - Added from Server
  • 2 - Added from Local DIB
  • 3 - Deleted from Local DIB
  • 4 - Modified from Local DIB

7

Attribute name

Specifies the NDS name for the attribute. Many attributes in eDirectory have both an LDAP name and an NDS name. This string requires the NDS name.


Example LDIF File to Create Indexes

dn: cn=testServer-NDS,o=Novellchangetype: modifyadd: indexDefinitionindexDefinition: 0$indexName$2$2$0$1$attributeName


Example LDIF File to Delete Indexes

dn: cn=osg-nw5-7, o=Novellchangetype: modifydelete: indexDefinitionindexDefinition: 0$indexName$2$2$0$1$attributeName