The vec_offset field

The vec_offset field, of data type CLOB, contains a list of ordered pairs of integers that pinpoint the location of every instance of the clue in the search text.

Each integer is separated from other integers by a blank space. The first integer of the ordered pair is the beginning offset of the clue, and the second integer is the length of the highlighted string. The first character in a document has an offset of 0.

For example, the following is sample output from the vec_offset field if you search for the word be in the search text to be or not to be:
3 2 16 2

The first instance of the word be starts at offset 3, assuming the first character is at offset 0, and the length of the string to be highlighted is 2. The second instance of the word be starts at offset 16 and the length of the string to be highlighted is again 2.

The Excalibur text search engine sometimes expands clues to search for similar words. For example, if you search for the word house and request highlighting information by using the etx_GetHilite() or etx_HiliteDoc() routines, the word housing might also be highlighted. This explains why the length of the highlighted string specified through the vec_offset field might sometimes differ from the length of the original clue.

You can also use standard routines, such as ifx_lo_open() and ifx_lo_read(), or DataBlade® API large object routines, such as mi_lo_open() and mi_lo_read(), to manipulate etx_HiliteType objects.