Separate SegmentReaders (and other atomic readers) from composite IndexReaders
------------------------------------------------------------------------------

                 Key: LUCENE-2858
                 URL: https://issues.apache.org/jira/browse/LUCENE-2858
             Project: Lucene - Java
          Issue Type: Task
            Reporter: Uwe Schindler
             Fix For: 4.0


With current trunk, whenever you open an IndexReader on a directory you get 
back a DirectoryReader which is a composite reader. The interface of 
IndexReader has now lots of methods that simply throw UOE (in fact more than 
50% of all methods that are commonly used ones are unuseable now). This 
confuses users and makes the API hard to understand.

This issue should split "atomic readers" from "reader collections" with a 
separate API. After that, you are no longer able, to get TermsEnum without 
wrapping from those composite readers. We currently have helper classes for 
wrapping (SlowMultiReaderWrapper - please rename, the name is really ugly; or 
Multi*), those should be retrofitted to implement the correct classes 
(SlowMultiReaderWrapper would be an atomic reader but takes a composite reader 
as ctor param, maybe it could also simply take a List<AtomicReader>). In my 
opinion, maybe composite readers could implement some collection APIs and also 
have the ReaderUtil method directly built in (possibly as a "view" in the 
util.Collection sense). In general composite readers do not really need to look 
like the previous IndexReaders, they could simply be a "collection" of 
SegmentReaders with some functionality like reopen.

On the other side, atomic readers do not need reopen logic anymore? When a 
segment changes, you need a new atomic reader? - maybe because of deletions 
thats not the best idea, but we should investigate. Maybe make the whole reopen 
logic simplier to use (ast least on the collection reader level).

We should decide about good names, i have no preference at the moment.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to