# Package org.apache.geode.cache.lucene

This package provides an integration with Apache Lucene that allows Geode regions to be indexed in a distributed Lucene index and queries using Lucene queries.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  LuceneIndex | LuceneIndex represents the Lucene index created over the data stored in Apache Geode regions.
  LuceneIndexFactory | A factory for creating a lucene index on the current member.
  LuceneQuery<K,V> | A query on a Lucene index.
  LuceneQueryFactory | Factory for configuring a Lucene query.
  LuceneQueryProvider | A factory for `Query` objects.
  LuceneResultStruct<K,V> | An interface which stores a single result obtained by executing a Lucene query.
  LuceneSerializer<T> | An interface for writing the fields of an object into a lucene document
  LuceneService | The LuceneService provides the capability to create Lucene indexes and execute lucene queries on data stored in Geode regions.
  PageableLuceneQueryResults<K,V> | This interface allows you to retrieve a page of query results at a time, using the `PageableLuceneQueryResults.hasNext()` and `PageableLuceneQueryResults.next()` methods.

- Class Summary
  Class | Description
  --- | ---
  FlatFormatSerializer | A built-in `LuceneSerializer` to parse user's nested object into a flat format, i.e.
  LuceneServiceProvider | Class for retrieving or creating the currently running instance of the LuceneService.

- Exception Summary
  Exception | Description
  --- | ---
  LuceneIndexDestroyedException | A LuceneIndexDestroyedException is thrown if a Lucene index is attempted to be used while it is being destroyed or after it has been destroyed.
  LuceneIndexExistsException | A LuceneIndexExistsException is thrown if a Lucene index that already exists is attempted to be created.
  LuceneIndexNotFoundException | A LuceneIndexNotFoundException is thrown if a Lucene index is requested but not found.
  LuceneQueryException | Thrown when a Lucene query fails.

## Package org.apache.geode.cache.lucene Description

This package provides an integration with Apache Lucene that allows Geode regions to be indexed in a distributed Lucene index and queries using Lucene queries.

All indexing and query operations are performed through the `LuceneService` class. See `LuceneService` for an example of how to add a Lucene index to a Geode region.

The Lucene indexes created using this API are stored in Geode and colocated with the indexed region, which means they have the same availability guarantees as the underlying region. The indexes are maintained asynchronously, so changes to the region may not be immediately visible in the Lucene index.