Book Image

Lucene 4 Cookbook

By : Edwood Ng, Vineeth Mohan
Book Image

Lucene 4 Cookbook

By: Edwood Ng, Vineeth Mohan

Overview of this book

Table of Contents (16 chapters)
Lucene 4 Cookbook
About the Authors
About the Reviewers

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 constructor takes three arguments: an IndexWriter, a Boolean indicating whether to apply uncommitted deletes, and a SearcherFactory. In our example, we will use the built-in SearcherFactory. The SearcherFactory object can be extended to include custom...