org.hibernate.search.indexes.spi
Interface IndexManager

All Known Implementing Classes:
DirectoryBasedIndexManager, NRTIndexManager

public interface IndexManager

An IndexManager abstracts the specific configuration and implementations being used on a single index. For each index a different implementation can be used, or different configurations. While in previous versions of Hibernate Search the backend could be sync or async, this fact is now considered a detail of the concrete IndexManager implementations. This makes it possible to configure each index manager (and hence index) differently. A concrete implementation can also decide to only support a specific mode of operation. It can ignore some configuration properties or expect additional properties.

Author:
Sanne Grinovero <sanne@hibernate.org> (C) 2011 Red Hat Inc.

Method Summary
 void addContainedEntity(Class<?> entity)
           
 void destroy()
          Called when a SearchFactory is stopped.
 org.apache.lucene.analysis.Analyzer getAnalyzer(String name)
           
 Set<Class<?>> getContainedTypes()
           
 String getIndexName()
          Useful for labeling and logging resources from this instance.
 ReaderProvider getReaderProvider()
          Provide access to IndexReaders.
 LuceneWorkSerializer getSerializer()
           
 org.apache.lucene.search.Similarity getSimilarity()
           
 void initialize(String indexName, Properties properties, WorkerBuildContext context)
          Initialize the IndexManager before its use.
 void optimize()
          To optimize the underlying index.
 void performOperations(List<LuceneWork> queue, IndexingMonitor monitor)
          Used to apply update operations to the index.
 void performStreamOperation(LuceneWork singleOperation, IndexingMonitor monitor, boolean forceAsync)
          Perform a single non-transactional operation, best to stream large amounts of operations.
 void setSearchFactory(SearchFactoryImplementor boundSearchFactory)
          Connects this IndexManager to a new SearchFactory.
 void setSimilarity(org.apache.lucene.search.Similarity newSimilarity)
          Not intended to be a mutable option, but the Similarity might be defined later in the boot lifecycle.
 

Method Detail

getIndexName

String getIndexName()
Useful for labeling and logging resources from this instance.

Returns:
the name of the index maintained by this manager.

getReaderProvider

ReaderProvider getReaderProvider()
Provide access to IndexReaders.

Returns:
a ReaderProvider instance for the index managed by this instance

performOperations

void performOperations(List<LuceneWork> queue,
                       IndexingMonitor monitor)
Used to apply update operations to the index. Operations can be applied in sync or async, depending on the IndexManager implementation and configuration.

Parameters:
monitor - no be notified of indexing events
queue - the list of write operations to apply.

performStreamOperation

void performStreamOperation(LuceneWork singleOperation,
                            IndexingMonitor monitor,
                            boolean forceAsync)
Perform a single non-transactional operation, best to stream large amounts of operations. Operations might be applied out-of-order! To mark two series of operations which need to be applied in order, use a transactional operation between them: a transactional operation will always flush all streaming operations first, and be applied before subsequent streaming operations.

Parameters:
singleOperation - the operation to perform
monitor - no be notified of indexing events
forceAsync - if true, the invocation will not block to wait for it being applied. When false this will depend on the backend configuration.

initialize

void initialize(String indexName,
                Properties properties,
                WorkerBuildContext context)
Initialize the IndexManager before its use.

Parameters:
indexName - The unique name of the index (manager). Can be used to retrieve a IndexManager instance via the search factory and IndexManagerHolder.
properties - The configuration properties
context - context information needed to initialize this index manager

destroy

void destroy()
Called when a SearchFactory is stopped. This method typically releases resources.


getContainedTypes

Set<Class<?>> getContainedTypes()
Returns:
the set of classes being indexed in this manager

getSimilarity

org.apache.lucene.search.Similarity getSimilarity()
Returns:
the Similarity applied to this index. Note, only a single Similarity can be applied to a given index.

setSimilarity

void setSimilarity(org.apache.lucene.search.Similarity newSimilarity)
Not intended to be a mutable option, but the Similarity might be defined later in the boot lifecycle.

Parameters:
newSimilarity - the new similarity value

getAnalyzer

org.apache.lucene.analysis.Analyzer getAnalyzer(String name)
Parameters:
name - the name of the analyzer to retrieve.
Returns:
Returns the Analyzer with the given name (see also AnalyzerDef)
Throws:
SearchException - in case the analyzer name is unknown.

setSearchFactory

void setSearchFactory(SearchFactoryImplementor boundSearchFactory)
Connects this IndexManager to a new SearchFactory.

Parameters:
boundSearchFactory - the existing search factory to which to associate this index manager with

addContainedEntity

void addContainedEntity(Class<?> entity)
Parameters:
entity - Adds the specified entity type to this index manager, making it responsible for manging this type.

optimize

void optimize()
To optimize the underlying index. Some implementations might ignore the request, if it doesn't apply to them.


getSerializer

LuceneWorkSerializer getSerializer()
Returns:
the Serializer implementation used for this IndexManager


Copyright © 2006-2012 Red Hat Middleware, LLC. All Rights Reserved