lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shai Erera (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENE-2345) Make it possible to subclass SegmentReader
Date Fri, 26 Mar 2010 11:30:27 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-2345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12850094#action_12850094
] 

Shai Erera commented on LUCENE-2345:
------------------------------------

Earwin, I wholeheartedly agree with what you wrote. If we could refactor IW and extract it
to a set of interfaces, then I agree (and Michael B. has an issue open for that). I think
though that IW's API is already that interface (give or take few methods). So perhaps this
can be an easy refactoring - introduce an Indexer (a la Searcher) class (or interface) w/
all of IW public methods, and then let PW extend/impl that class/interface as well as IW.
We can also consider making IW itself final this way (though bw police will prevent it :)).

Then when PW sets up the slices, it can create them as IW or any other IW-like implementation
it needs them to impl. If it sounds good enough to become its own issue, I can open one and
we can continue discussing it there (and leave that issue focused on extending SR). Then I'll
hold off w/ LUCENE-2330, or simply rename it to reflect that Indexer API.

> Make it possible to subclass SegmentReader
> ------------------------------------------
>
>                 Key: LUCENE-2345
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2345
>             Project: Lucene - Java
>          Issue Type: Wish
>          Components: Index
>            Reporter: Tim Smith
>             Fix For: 3.1
>
>         Attachments: LUCENE-2345_3.0.patch
>
>
> I would like the ability to subclass SegmentReader for numerous reasons:
> * to capture initialization/close events
> * attach custom objects to an instance of a segment reader (caches, statistics, so on
and so forth)
> * override methods on segment reader as needed
> currently this isn't really possible
> I propose adding a SegmentReaderFactory that would allow creating custom subclasses of
SegmentReader
> default implementation would be something like:
> {code}
> public class SegmentReaderFactory {
>   public SegmentReader get(boolean readOnly) {
>     return readOnly ? new ReadOnlySegmentReader() : new SegmentReader();
>   }
>   public SegmentReader reopen(SegmentReader reader, boolean readOnly) {
>     return newSegmentReader(readOnly);
>   }
> }
> {code}
> It would then be made possible to pass a SegmentReaderFactory to IndexWriter (for pooled
readers) as well as to SegmentReader.get() (DirectoryReader.open, etc)
> I could prepare a patch if others think this has merit
> Obviously, this API would be "experimental/advanced/will change in future"

-- 
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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message