Yonik Seeley wrote:

> Also, I think the extension points are important since
> NewIndexModifier does not (and probably never will be able to) do
> everything people need.

I agree extensions points are nice.  Maybe we could leave the
extension points ("doAfterFlushRamSegments", etc.) but merge
NewIndexModifier into IndexWriter?

Though I do worry that by adding these extension points we tie our
hands for later.  EG if we at some point improve IndexWriter to be
more like KinoSearch or Ferret, which have drastically different ways
to use RAM to buffer documents, then we will break people who rely on
these extensions points?  I guess we could also just make a whole new
writer class at that point.  It just feels like it may be too early to
expose the implementation details of how the current writer buffers
things in RAM and builds/flushes a segment on commit.

> There can be very complex ways of identifying documents to be
> deleted.

Agreed.  I think we must continue to support deleting from an
IndexReader for these advanced use cases.

> It's also nice knowing when documents in ram will be flushed to
> disk... one reason being that it correlates with document visibility
> if you open a new reader.

Do you mean this is a good use case for the extension point
"doAfterFlushFlushRamSegments"?  I agree.  Though with LUCENE-710
(adding "commit on close" to IndexWriter) you then have complete
control on visibility to readers.

I also think it's now confusing to users which class (IndexModifier,
NewIndexModifier, IndexWriter) to use to write to an index.  I would
prefer a single IndexWriter class now because this is more closely
towards our eventual goal of "use IndexWriter to make changes; use
IndexReader to search/read".

Mike

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

Reply via email to