The following process describes how Directory Server handles an extensible match search.
When Directory Server receives a search request containing an extensible match filter, the server calls the filter factory function in the plug-in handling the corresponding matching rule. The server passes the filter factory a parameter block containing the extensible match filter information.
The filter factory function builds a filter object. The function then sets pointers to the object as well as the appropriate filter matching and filter index functions.
The server attempts to look up a set of results in an index rather than searching the entire directory.
In order to read an index, the server calls the filter index function, which helps the server locate the appropriate indexer function.
Directory Server only considers all entries in the directory, which can slow the search considerably if one of the following is the case:
No existing index applies to the search
The plug-in specifies no indexer function
The plug-in generates no keys for the values specified
Directory Server calls the indexer function to generate the keys. Refer to Indexer Function for details about that function.
Directory Server verifies that the entry is in the scope of the search before returning the entry to the client as a search result.
Directory Server frees memory that was allocated for the operation.
The following figure shows how Directory Server processes the search request.
The main filter functions are as follows: