I'd also trying to make time to explore the approach of creating an
IndexReader impl. that searches IndexWriter's RAM buffer.
I think it's quite feasible, but, it'd still have a "reopen" cost in
that any buffered delete by term or query would have to be
"materialiazed" into docIDs on reopen. Though, if this somehow turns
out to be a problem, in the future we could do this materializing
immediately, instead of buffering, if we already have a reader open.
Flushing is somewhat tricky because any open RAM readers would then
have to cutover to the newly flushed segment once the flush completes,
so that the RAM buffer can be recycled for the next segment.
Mike
Jason Rutherglen wrote:
InstantiatedIndex isn't quite realtime. Instead a new
InstantiatedIndex is created per transaction in Ocean and managed
thereafter. This however is fairly easy to build and could offer
realtime in Lucene without adding the transaction logging. It would
be good to find out what scope is acceptable for a Lucene core version
of realtime. Perhaps this basic feature set is good enough.
On Mon, Sep 8, 2008 at 10:23 AM, Mark Miller <[EMAIL PROTECTED]>
wrote:
Ning Li wrote:
I agree with Otis that the first step for Lucene is probably to
support real-time
search. The instantiated index in contrib seems to be something
close..
Maybe we should start fleshing out what we want in realtime search
on the
wiki?
Could it be as simple as making InstantiatedIndex realtime (allow
writes/read at same time?). Then you could search over your
IndexReader as
well as the InstantiatedIndex. Writes go to both the Writer and the
InstantiatedIndex. Nothing is actually permanent until the true
commit, but
stuff is visible pretty fast...a new IndexReader view starts a fresh
InstantiedIndex...
Jasons realtime patch is still pretty large...would be nice if we
could
accomplish this with as few changes as possible...
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]