Package org.apache.lucene.facet.taxonomy

# Class SearcherTaxonomyManager

java.lang.Object
org.apache.lucene.search.ReferenceManager<SearcherTaxonomyManager.SearcherAndTaxonomy>
org.apache.lucene.facet.taxonomy.SearcherTaxonomyManager

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public class SearcherTaxonomyManager extends ReferenceManager<SearcherTaxonomyManager.SearcherAndTaxonomy>
Manages near-real-time reopen of both an IndexSearcher and a TaxonomyReader.

NOTE: If you call `DirectoryTaxonomyWriter.replaceTaxonomy(org.apache.lucene.store.Directory)` then you must open a new `SearcherTaxonomyManager` afterwards.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static final record`
`SearcherTaxonomyManager.SearcherAndTaxonomy`
Holds a matched pair of `IndexSearcher` and `TaxonomyReader`

## Nested classes/interfaces inherited from class org.apache.lucene.search.ReferenceManager

`ReferenceManager.RefreshListener`

## Field Summary

### Fields inherited from class org.apache.lucene.search.ReferenceManager

`current`

## Constructor Summary

Constructors
Constructor
Description
`SearcherTaxonomyManager(IndexReader reader, DirectoryTaxonomyReader taxoReader, SearcherFactory searcherFactory)`
Creates this from already opened `IndexReader` and `DirectoryTaxonomyReader` instances.
`SearcherTaxonomyManager(IndexWriter writer, boolean applyAllDeletes, SearcherFactory searcherFactory, DirectoryTaxonomyWriter taxoWriter)`
Expert: creates near-real-time searcher and taxonomy reader from the corresponding writers, controlling whether deletes should be applied.
`SearcherTaxonomyManager(IndexWriter writer, SearcherFactory searcherFactory, DirectoryTaxonomyWriter taxoWriter)`
Creates near-real-time searcher and taxonomy reader from the corresponding writers.
`SearcherTaxonomyManager(Directory indexDir, Directory taxoDir, SearcherFactory searcherFactory)`
Creates search and taxonomy readers over the corresponding directories.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`decRef(SearcherTaxonomyManager.SearcherAndTaxonomy ref)`
`protected int`
`getRefCount(SearcherTaxonomyManager.SearcherAndTaxonomy reference)`
`protected SearcherTaxonomyManager.SearcherAndTaxonomy`
`refreshIfNeeded(SearcherTaxonomyManager.SearcherAndTaxonomy ref)`
`protected boolean`
`tryIncRef(SearcherTaxonomyManager.SearcherAndTaxonomy ref)`

### Methods inherited from class org.apache.lucene.search.ReferenceManager

`acquire, addListener, afterClose, afterMaybeRefresh, close, maybeRefresh, maybeRefreshBlocking, release, removeListener`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SearcherTaxonomyManager

public SearcherTaxonomyManager(IndexWriter writer, SearcherFactory searcherFactory, DirectoryTaxonomyWriter taxoWriter) throws IOException
Creates near-real-time searcher and taxonomy reader from the corresponding writers.

Throws:
  `IOException`

### SearcherTaxonomyManager

public SearcherTaxonomyManager(IndexWriter writer, boolean applyAllDeletes, SearcherFactory searcherFactory, DirectoryTaxonomyWriter taxoWriter) throws IOException
Expert: creates near-real-time searcher and taxonomy reader from the corresponding writers, controlling whether deletes should be applied.

Throws:
  `IOException`

### SearcherTaxonomyManager

public SearcherTaxonomyManager(Directory indexDir, Directory taxoDir, SearcherFactory searcherFactory) throws IOException
Creates search and taxonomy readers over the corresponding directories.

NOTE: you should only use this constructor if you commit and call `ReferenceManager.maybeRefresh()` in the same thread. Otherwise it could lead to an unsync'd `IndexSearcher` and `TaxonomyReader` pair.

Throws:
  `IOException`

### SearcherTaxonomyManager

public SearcherTaxonomyManager(IndexReader reader, DirectoryTaxonomyReader taxoReader, SearcherFactory searcherFactory) throws IOException
Creates this from already opened `IndexReader` and `DirectoryTaxonomyReader` instances. Note that the incoming readers will be closed when you call `ReferenceManager.close()`.

Throws:
  `IOException`

## Method Details

### decRef

protected void decRef(SearcherTaxonomyManager.SearcherAndTaxonomy ref) throws IOException

Specified by:
  `decRef` in class `ReferenceManager<SearcherTaxonomyManager.SearcherAndTaxonomy>`
Throws:
  `IOException`

### tryIncRef

protected boolean tryIncRef(SearcherTaxonomyManager.SearcherAndTaxonomy ref) throws IOException

Specified by:
  `tryIncRef` in class `ReferenceManager<SearcherTaxonomyManager.SearcherAndTaxonomy>`
Throws:
  `IOException`

### refreshIfNeeded

protected SearcherTaxonomyManager.SearcherAndTaxonomy refreshIfNeeded(SearcherTaxonomyManager.SearcherAndTaxonomy ref) throws IOException

Specified by:
  `refreshIfNeeded` in class `ReferenceManager<SearcherTaxonomyManager.SearcherAndTaxonomy>`
Throws:
  `IOException`

### getRefCount

protected int getRefCount(SearcherTaxonomyManager.SearcherAndTaxonomy reference)

Specified by:
  `getRefCount` in class `ReferenceManager<SearcherTaxonomyManager.SearcherAndTaxonomy>`