[
https://issues.apache.org/jira/browse/LUCENE-2858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13190559#comment-13190559
]
Uwe Schindler commented on LUCENE-2858:
---------------------------------------
I created the branch at
[https://svn.apache.org/repos/asf/lucene/dev/branches/lucene2858] and committed
my first steps:
- Add CompositeIndexReader and AtomicIndexReader
- Moved methods around, still now finished (see below)
- DirectoryReader is public now and is returned by IR.open() and IW.getReader()
TODO:
- IR.openIfChanged makes no sense for any reader other than DirectoryReader,
let's move it also there
- isCurrent and getVersion() is also useless for atomic readers and composite
readers except DR
- The strange generics in ReaderContext caused by the final field will go away,
when changing reader field to aaccessor method returning the correct type (by
return type overloading).
Comments welcome and also heavy committing.
> 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
> Assignee: Uwe Schindler
> Priority: Blocker
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]