I have created several systems capable of searching text
databases using boolean expressions and keywords. I typically
use an N'th order btree to organize the keywords. Then each
node associated with each keyword has a pointer to
an inverted index.
This works wonderfully well. However, the environment was
such that the data was relatively static.
Now I need the same capabilities and a different organization
for the inverted index. People will be adding records every
couple minutes to the db. I need to isolate every word
and stuff it into the btree and then update the inverted index.
The problem is that the pointer data in the inverted index for
a given keyword can no longer be guaranteed to be contiguous.
I have tried a linked list approach but the results are proportional
to the length of the list.
Does anyone have any *practical* experience with Inverted
Indexes in an environment where the data is relatively