[ 
https://issues.apache.org/jira/browse/LUCENE-3786?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Shai Erera updated LUCENE-3786:
-------------------------------

    Attachment: LUCENE-3786-3x-nocommit.patch

Here's the patch I ended up with when working on this on top of 3.x (don't 
remember if it was 3.5 or 3.6). This is not intended for commit, but you many 
want to look at the manager and its validation logic. Not sure how much of it 
is still relevant, except the recreate scenario.
                
> 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
>
>
> 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