Using the SearcherManager to refresh IndexSearcher

The SearcherManager is a utility class that facilitates the sharing of IndexSearcher across multiple threads. It provides the facilities to acquire and release IndexSearcher, while allowing IndexSearcher to be reopened periodically. The IndexSearcher attribute can be refreshed by calling maybeRefresh prior to acquire, though it's recommended that this method be called periodically in a separate thread to minimize impacting a query that happens to trigger a refresh. Note that it's very important to call release so SearcherManager knows when IndexSearcher is not in use so that it can be closed for a refresh.

The following diagram shows SearcherManager's main responsibilities:

The SearcherManager's ...

Get Lucene 4 Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.