There are several approaches. First, is your index small
enough to fit in RAM? You might consider just putting it all in
RAM and searching that.
A more complex solution would be to keep the increments
in a separate RAMDir AND your FSDir, search both and
keep things coordinated. Something like
open FSDIr
create RAMDir
while (whatever) {
get request
if (modification) {
write to FSDir and RAMDir
}
if (search) {
search FSDir
open RAMDir reader
search RAMDir
close RAMDir reader (but not writer!)
}
}
close FSDIr
close RAMDir
start again from the top.
Warning: I haven't done this, but it *should* work. The sticky
part seems to me to be coordinating deletes since the
open FSDir may contain documents also in the RAMDir,
but that's "an exercise for the reader"<G>,
You could also define the problem away and just live
with a 5 minute latency.
Best
Erick
On 8/22/07, Jonathan Ariel <[EMAIL PROTECTED]> wrote:
>
> Hi,
> I'm new to this list. So first of all Hello to everyone!
>
> So right now I have a little issue I would like to discuss with you.
> Suppose that your are in a really big application where the data in your
> database is updated really fast. I reindex lucene every 5 min but since my
> application lists everything from lucene there are like 5 minutes (in the
> worse case) where I don't see new staff.
> What do you think would be the best aproach to this problem?
>
> Thanks!
>
> Jonathan
>