[
https://issues.apache.org/jira/browse/LUCENE-743?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Busch updated LUCENE-743:
---------------------------------
Attachment: lucene-743.patch
Now, after LUCENE-781, LUCENE-970 and LUCENE-832 are committed, I updated the
latest
patch here, which was now easier because MultiReader is now separated into two
classes.
Notes:
* As Hoss suggested I added the reopen() method to IndexReader non-static.
* MultiReader and ParallelReader now overwrite reopen() to reopen the
subreaders
recursively.
* FilteredReader also overwrites reopen(). It checks if the underlying
reader has
changed, and in that case returns a new instance of FilteredReader.
I think the general contract of reopen() should be to always return a new
IndexReader
instance if it was successfully refreshed and return the same instance
otherwise,
because IndexReaders are used as keys in caches.
A remaining question here is if the old reader(s) should be closed then or not.
This patch closes the old readers for now, if we want to change that we
probably have
to add some reference counting mechanism, as Robert suggested already. Then I
would
also have to change the SegmentReader.reopen() implementation to clone
resources like
the dictionary, norms and delete bits.
I think closing the old reader is fine. What do others think? Is keeping the
old
reader after a reopen() a useful usecase?
> IndexReader.reopen()
> --------------------
>
> Key: LUCENE-743
> URL: https://issues.apache.org/jira/browse/LUCENE-743
> Project: Lucene - Java
> Issue Type: Improvement
> Components: Index
> Reporter: Otis Gospodnetic
> Assignee: Michael Busch
> Priority: Minor
> Fix For: 2.3
>
> Attachments: IndexReaderUtils.java, lucene-743.patch,
> lucene-743.patch, lucene-743.patch, MyMultiReader.java, MySegmentReader.java
>
>
> This is Robert Engels' implementation of IndexReader.reopen() functionality,
> as a set of 3 new classes (this was easier for him to implement, but should
> probably be folded into the core, if this looks good).
--
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]