DELETING AND UNDELETING RECORDS
Onix allows you to both delete and undelete records. Deleted records are automatically removed from search results. You may also test to see if any given record has been deleted by calling ixIsRecordDeleted.
Onix allows you to either delete a single record number by calling ixDeleteRecordNum or a whole series of record numbers by calling ixDeleteRecordNums. The same holds true with undeleting record numbers using the calls ixUnDeleteRecordNum and ixUnDeleteRecordNums.
Using ixOutputDeletedRecords, you can output the deleted records to a buffer which can then be saved to disk or otherwise processed.
Deleted records are handled on a per index basis -- not on a per partition basis. This means that if you replace any partitions in a distributed index, then the old deleted record numbers will apply to the new partition. So given this situation the deleted record numbers need to be recalculated. If you are not using a distributed index, then this is not a concern.
To totally remove deleted index data from an index, the index needs to either be rebuilt or optimized. During either process the index data and any record data and record ids are removed from the index. You can use the function ixGetNumberOfRecordsDeleted to get the total number of deleted records in an index. This can aid you in deciding if it would be more efficient to rebuild the index.