ixFinalProcessIndex
Name
fxFinalProcessIndex
Synopsis
void xFinalProcessIndex( OnixIndexManagerT IndexManager, OnixIndexingEngineT Indexer, StatusCodeT *Status)
Arguments
IndexManager: IndexManager which you obtained when you called ixCreateIndexManager and then associated with an index by a call to ixOpenIndex.
IndexingEngine: IndexingEngine which you obtained from the call to ixStartIndexingSession.
Status: A pointer to a value of type StatusCodeT representing any error conditions.
Returns
Nothing.
If an error occurred, Status will be set to the error number.
Description
When you are finished indexing, Onix needs to take the data generated during the main indexing process and compile it into a highly compressed and efficient index structure. ixEndIndexingSession provides an easy way to accomplish this. However, some applications (especially multi-user or multi-threaded applications need a finer level of control than that provided by ixEndIndexingSession. ixFinalProcessIndex gives you this. ixEndIndexingSession modifies the main index file to delineate where the new index data is located when it is finished processing the index data which can cause problems if the index is being searched concurrently. ixFinalProcessIndex does not do this. In this way, ixFinalProcessIndex processes the index data generated so that it can safely run in a separate thread than that which performs queries on the index. Since ixFinalProcessIndex does not modify the main index file, ixFinalProcessIndex does not make the index data generated during the indexing session part of the index. (After ixFinalProcessIndex has finished, you need to follow it with a call to ixMakeIndexActive to make the new index data part of the index. Be sure all queries are stopped momentarily during the call to ixMakeIndexActive while the main index is being updated. See the documentation for ixMakeIndexActive for details.)
Before calling ixFinalProcessIndex be sure you have set the location of the index data generated by a call to ixSetFinalIndexDataPosition. (This call must be made at some point during the indexing session.) In this way, ixFinalProcessIndex will know what file to create and where to put the compressed index data.
ixFinalProcessIndex followed by a call to ixMakeIndexActive is equivalent to ixEndIndexingSession.
See Also
Indexing
ixStartIndexingSession, ixIndexWord, ixEndIndexingSession, ixMakeIndexActive