The Main Manual Page Dynamic API Documentation CD-ROM API Documentation About Onix Types About Onix Errors Onix's Web Site at Lextek International Lextek International Onix Full Text Indexing and Retrieval Toolkit

MANUAL PROCESSING OF QUERIES

 

Navigating the Hit List

Onix provides a number of routines for navigating the result vectors that you create or the ones which are returned from processing queries via ixProcessQuery. These are relatively straightforward.

Each does what what you might expect and allows you to go forward and backwards in the results list.

Creating and Deleting Result Vectors

You may create your own result vectors using ixCreateResultVector in which you can store record numbers and word numbers. You can use these as a method to keep intermediate search results. You may also perform boolean operations on these result vectors. When you are finished, you may delete the result vector using ixDeleteResultVector. This is the same routine you use to delete result vectors returned by ixProcessQuery. You can add "hits" to a result vector by calling ixVectorAddHit() if you are at the tail end of the vector. The hits do not need to be in record number / word number order though they do need to be if you plan on performing any boolean operations on them.

 

Manual Boolean Operators

You may perform boolean operations on result vectors that either you have created or those that are returned by ixProcessQuery. This allows you to narrow or expand or otherwise modify a search according another result vector. For example, you can take a new result result vector returned by a search and perform ixVectorNot() with the results of a previous query giving you a result vector which contains only the new hits (those that are different between the first and second vectors).

Note: Each of these boolean operators depend on the result vector being in record number, word number order. If they are not sorted in this manner, these functions will return spurious results.

 

SEE ALSO

ixCreateResultVector, ixDeleteResultVector, ixGetCurrentQueryVector, ixVectorAnd, ixVectorOr, ixVectorNot, ixVectorRewind, ixVectorCurrentHit, ixVectorNextHit, ixVectorNextRecord, ixVectorPreviousHit, ixVectorPreviousRecord, ixVectorAddHit