Kevin A. Burton wrote:
My problem is that I have two machines... one for searching, one for indexing.

The searcher has an existing index.

The indexer found an UPDATED document and then adds it to a new index and pushes that new index over to the searcher.

The searcher then reloads and when someone performs a search BOTH documents could show up (including the stale document).

I can't do a delete() on the searcher because the indexer doesn't have the entire index as the searcher.

I can think of a couple ways to fix this.

If the indexer box kept copies of the indexes that it has already sent to the searcher, then it can mark updated documents as deleted in these old indexes. Then you can, with the new index, also distribute new .del files for the old indexes.

Alternately, you could, on the searcher box, before you open the new index, open an IndexReader on all of the existing indexes and mark all new documents as deleted in the old indexes. This shouldn't take more than a few seconds.

IndexReader.delete() just sets a bit in a bit vector that is written to file by IndexReader.close(). So it's quite fast.

Doug

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to