ixSetFinalIndexDataFileNameAndPosition
Name
ixSetFinalIndexDataFileNameAndPosition
Synopsis
void ixSetFinalIndexDataFileNameAndPosition( OnixIndexingEngineT Indexer, OnixFileSpecT Path, OnixFileSpecT FileName, StatusCodeT *Status)
Arguments
IndexManager: An index manager as returned from ixCreateIndexManager.
Path: The path to your index.
Name: The filename of your index.
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 adding to a distributed index you must pass both the name of the distributed index (the distributed part of the index which is separate from the main file) and the path to these files. The two are separate because you can create "relative" directories by passing a partial path as the name. When you open a distributed index to search you can move the original directory but keep this relative directory structure.
For instance while indexing you may have Path as "c:/server/indexing/" and FileName as "lib/dist1.idx". After you have finished the indexing process you may choose to move those files to a different location. You want to be able to keep the relative structure (the lib directory) but had you stored the "c:/server/indexing/" path you'd not have been able to move the actual database.
When you open the index for searching you would call ixSetBaseDistributedIndexDirectory with DirectoryName to be where ever you put the lib directory. So if your new path to the distributed index is "z:/storage/indexes/lib/dist1.idx" you would pass "z:/storage/indexes/" as the DirectoryName.
Note that Path must include the trailing path separator. Onix concats the path and the name together internally. Without that ending path separation the concatenation isn't done correctly.
See Distributed Indexes for more information and sample code for creating and searching a distributed index.
See Also
Indexing
ixOpenIndex, ixSetBaseDistributedIndexDirectory