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

Michael McCandless commented on LUCENE-3786:
--------------------------------------------

bq. I reviewed again, and now that you switch to calling close() instead of 
decRef(), I think the close() should be done via IOUtils.close, to avoid a 
potential close failure (newReader.close()) and leave behind a dangling TR?

Good, I'll fix that.

bq. Also test() also has these 5 close() statements which can be folded into 
one IOUtils. But that's just style.

Woops, I missed that one ... I'll fix.

bq. What I meant is that if instead of checking epoch on TR you check on DTW, 
you won't (I think!) get into that hazard. 

Ahh, right, as long as I check taxoWriter after the reopen: good!  I'll fix to 
just use DTW...
                
> Create SearcherTaxoManager
> --------------------------
>
>                 Key: LUCENE-3786
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3786
>             Project: Lucene - Core
>          Issue Type: New Feature
>          Components: modules/facet
>            Reporter: Shai Erera
>            Assignee: Michael McCandless
>            Priority: Minor
>             Fix For: 5.0, 4.3
>
>         Attachments: LUCENE-3786-3x-nocommit.patch, LUCENE-3786.patch, 
> LUCENE-3786.patch, LUCENE-3786.patch, LUCENE-3786.patch
>
>
> If an application wants to use an IndexSearcher and TaxonomyReader in a 
> SearcherManager-like fashion, it cannot use a separate SearcherManager, and 
> say a TaxonomyReaderManager, because the IndexSearcher and TaxoReader 
> instances need to be in sync. That is, the IS-TR pair must match, or 
> otherwise the category ordinals that are encoded in the search index might 
> not match the ones in the taxonomy index.
> This can happen if someone reopens the IndexSearcher's IndexReader, but does 
> not refresh the TaxonomyReader, and the category ordinals that exist in the 
> reopened IndexReader are not yet visible to the TaxonomyReader instance.
> I'd like to create a SearcherTaxoManager (which is a ReferenceManager) which 
> manages an IndexSearcher and TaxonomyReader pair. Then an application will 
> call:
> {code}
> SearcherTaxoPair pair = manager.acquire();
> try {
>   IndexSearcher searcher = pair.searcher;
>   TaxonomyReader taxoReader = pair.taxoReader;
>   // do something with them
> } finally {
>   manager.release(pair);
>   pair = null;
> }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
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]

Reply via email to