Indexes can be defined and managed using LDAP. The advantage to allowing index creation through LDAP is that an application can now define indexes during its install process. Index definitions can be part of the same LDIF file that applies the required schema for the application.
ldapmodify -h 10.10.10.15 -b -D "cn=admin, o=novell"" -w "ldap" dn: cn=testServer-NDS, o=Novell" changetype: modify add: indexDefinition indexDefinition: 0$fullNameSubstring$2$2$0$1$fullName
Notice that the '$' character is used to separate the various fields in the value. If you use an index name or an attribute name that contains a '$' character, you must escape the '$'. In LDAP, inserting the character sequence \24 does this. The backslash is the escape character, and it must be followed by two octets specifying the nibbles of the escaped character. Since the $ character has a Hex value of 24, the octet representation of the escaped sequence is \24 (or, if you prefer, 5C3234).
If you choose to put UTF8 extended characters (not recommended) in one of the two text fields, they must also be escaped.
ldapsearch -h 10.10.10.15 -L -D "cn=admin, o=novell" " -w "ldap" -b "cn=testServer-NDS, o=Novell"" (indexDefinition = *) indexDefinition
The following command to ldapmodify changes the state of the fullNameSubstring index from Online to Suspended.
ldapmodify -h 10.10.10.15 -b -D "cn=admin, o=novell"" -w "ldap" dn: cn=testServer-NDS, o=Novell" changetype: modify delete: indexDefinition indexDefinition: 0$fullNameSubstring$2$2$0$1$fullName - add: indexDefinition indexDefinition: 0$fullNameSubstring$0$2$0$1$fullName