com.sun.labs.minion
Interface SearchEngine

All Superinterfaces:
Classifier, Searcher
All Known Implementing Classes:
SearchEngineImpl

public interface SearchEngine
extends Searcher, Classifier

This is the main interface for the search engine, which handles both indexing and retrieval operations. An implementation of this interface can be created using the SearchEngineFactory.

Indexing Documents

Each document is expected to have a unique key associated with it. The key can be any non-null Java String. It is up to the application to create these unique keys for the documents that are to be indexed. If you re-use a key (for example, if you're re-indexing a document whose contents have changed), then the search engine will index the new document and mark the old one as deleted.

Indexable

A search engine provides three approaches for indexing documents. The first is provided by the index(Indexable) method. Indexable is an interface that can be implemented by objects that you want to be indexed by the search engine. Objects that implement Indexable are indexed using the second approach for indexing.

Indexing a Map

In the second approach, a document key and a map from field names to field values are provided by the application. The search engine will iterate through the map and process each of the fields represented by a key/value pair. It is expected that the names of the fields provided as the keys in the map will be the same as the names of the fields defined in the configuration for the indexer. See defineField(com.sun.labs.minion.FieldInfo) to see how you can define fields programatically.

How the values in the map are handled depends on the attributes and types of the fields being indexed. The values in the maps can be a variety of types then engine will recognize String, java.util.Date, Integer, Long, Float, Double, as well as java.util.Collections and arrays of these types.

The engine will do some type conversion as necessary. For example, if the application defines a field of type INTEGER and a string is passed as the value for that field, the string will be parsed as an integer.

Indexing using SimpleIndexer

The final indexing approach is the SimpleIndexer. The application can request an instance of a SimpleIndexer using the getSimpleIndexer() method.

The application can use the simple indexer to add fields to a document one at a time, rather than having to have them all at the same time.


Field Summary
 
Fields inherited from interface com.sun.labs.minion.Searcher
GRAMMAR_LUCENE, GRAMMAR_STRICT, GRAMMAR_WEB, GRAMMARS, OP_AND, OP_OR, OP_PAND
 
Method Summary
 void addIndexListener(IndexListener il)
          Adds a listener for events in the index backing this search engine.
 void close()
          Closes the engine.
 Document createDocument(java.lang.String key)
          Creates a new document with a given key.
 FieldInfo defineField(FieldInfo field)
          Defines a given field.
 void delete(java.util.List<java.lang.String> keys)
          Deletes a number of documents from the index.
 void delete(java.lang.String key)
          Deletes a document from the index.
 void export(java.io.PrintWriter o)
          Outputs an XML representation of the search index including all saved and vectored fields.
 void flush()
          Flushes the indexed material currently held in memory to the disk, making it available for searching.
 void flushClassifiers()
          Flushes all the classifier data currently in memory to disk.
 java.util.List<java.lang.Object> getAllFieldValues(java.lang.String field, java.lang.String key)
          Gets all of the field values associated with a given field in a given document.
 double getDistance(java.lang.String k1, java.lang.String k2, java.lang.String name)
          Gets the distance between two documents, based on the values stored in in a given feature vector saved field.
 Document getDocument(java.lang.String key)
          Gets a document with a given key.
 java.util.Iterator<Document> getDocumentIterator()
          Gets an iterator for all of the non-deleted documents in the collection.
 java.util.List<Document> getDocuments(java.util.List<java.lang.String> keys)
          Gets a list of documents with the given keys.
 DocumentVector getDocumentVector(Document doc, java.lang.String field)
          Creates a document vector for the given document as though it occurred in the index.
 DocumentVector getDocumentVector(Document doc, WeightedField[] fields)
          Creates a composite document vector for the given document as though it occurred in the index.
 DocumentVector getDocumentVector(java.lang.String key)
          Gets a document vector for the given key.
 DocumentVector getDocumentVector(java.lang.String key, java.lang.String field)
          Gets a document vector for given vectored field for the given key.
 DocumentVector getDocumentVector(java.lang.String key, WeightedField[] fields)
          Gets a composite document vector for the given linear combination of vectored fields for the given key.
 FieldInfo getFieldInfo(java.lang.String name)
          Gets the information for a field.
 java.util.Iterator<java.lang.Object> getFieldIterator(java.lang.String field)
          Gets an iterator for all the values in a field.
 java.lang.Object getFieldValue(java.lang.String field, java.lang.String key)
          Gets a single field value associated with a given field in a given document.
 HLPipeline getHLPipeline()
          Gets a pipeline that can be used for highlighting.
 IndexConfig getIndexConfig()
          Gets the index configuration in use by this search engine.
 PartitionManager getManager()
          Gets the partition manager associated with this search engine.
 java.util.SortedSet<FieldValue> getMatching(java.lang.String field, java.lang.String pattern)
          Gets the values for the given field that match the given pattern.
 MetaDataStore getMetaDataStore()
          Gets the MetaDataStore for this index.
 java.lang.String getName()
          Gets the name of this engine, if one has been assigned by the application.
 int getNDocs()
          Gets the number of undeleted documents that the index contains.
 PartitionManager getPM()
          Gets the partition manager for this search engine.
 QueryConfig getQueryConfig()
          Gets the query configuration that the engine is currently using.
 QueryStats getQueryStats()
          Gets the combined query stats for any queries run by the engine.
 ResultSet getResults(java.util.Collection<java.lang.String> keys)
          Gets a set of results corresponding to the document keys passed in.
 ResultSet getSimilar(java.lang.String key, java.lang.String name)
          Gets a set of results ordered by similarity to the given document, calculated by computing the euclidean distance based on the feature vector stored in the given field.
 SimpleIndexer getSimpleIndexer()
          Gets a simple indexer that can be used for simple indexing.
 TermStats getTermStats(java.lang.String term)
          Gets the collection level term statistics for the given term.
 java.util.Set<java.lang.String> getTermVariations(java.lang.String term)
          Gets the set of variations on a term that will be generated by default when searching for the term.
 java.util.List<FieldFrequency> getTopFieldValues(java.lang.String field, int n, boolean ignoreCase)
          Gets a list of the top n most frequent field values for a given named field.
 void index(Document document)
          Indexes a document into the database.
 void index(Indexable document)
          Indexes a document into the database.
 void index(java.lang.String key, java.util.Map document)
          Indexes a document into the database.
 boolean isIndexed(java.lang.String key)
          Checks to see if a document is in the index.
 boolean merge()
          Performs a merge in the index, if one is necessary.
 void optimize()
          Merges all of the partitions in the index into a single partition.
 void purge()
          Purges all of the data in the index.
 void recover()
          Attempts to recover the index after an unruly shutdown.
 void removeIndexListener(IndexListener il)
          Removes an index listener from the listeners.
 void resetQueryStats()
          Resets the query stats for the engine.
 ResultSet search(Element el)
          Runs a query against the index, returning a set of results.
 ResultSet search(Element el, java.lang.String sortOrder)
          Runs a query against the index, returning a set of results.
 ResultSet search(java.lang.String query)
          Runs a query against the index, returning a set of results.
 ResultSet search(java.lang.String query, java.lang.String sortOrder)
          Runs a query against the index, returning a set of results.
 ResultSet search(java.lang.String query, java.lang.String sortOrder, int defaultOperator, int grammar)
          Runs a query against the index, returning a set of results.
 void setDefaultFieldInfo(FieldInfo field)
          Sets the default field information to use when unknown fields are encountered during indexing.
 void setLongIndexingRun(boolean longIndexingRun)
          Sets the indicator that this is a long indexing run, in which case term statistics dictionaries and document vector lengths will not be calculated until the engine is shutdown.
 void setQueryConfig(QueryConfig queryConfig)
          Sets the query configuration to use for subsequent queries.
 
Methods inherited from interface com.sun.labs.minion.Classifier
classify, getClasses, getTrainingDocuments, reclassifyIndex, trainClass, trainClass, trainClass, trainClass
 

Method Detail

setDefaultFieldInfo

void setDefaultFieldInfo(FieldInfo field)
Sets the default field information to use when unknown fields are encountered during indexing.

Parameters:
field - an exemplar field information object that has the attributes and type that should be used when an unknows field is encountered during indexing. Note that any name associated with this particular object will be ignored, we are only interested in the attributes and type associated with this field.
See Also:
for how to define a field to use during indexing

setLongIndexingRun

void setLongIndexingRun(boolean longIndexingRun)
Sets the indicator that this is a long indexing run, in which case term statistics dictionaries and document vector lengths will not be calculated until the engine is shutdown. This should be done before any indexing begins for best results.

Parameters:
longIndexingRun - true if this is a long indexing run

addIndexListener

void addIndexListener(IndexListener il)
Adds a listener for events in the index backing this search engine.

Parameters:
il - the listener to add.

removeIndexListener

void removeIndexListener(IndexListener il)
Removes an index listener from the listeners.

Parameters:
il - the index listener to remove.

defineField

FieldInfo defineField(FieldInfo field)
                      throws SearchEngineException
Defines a given field. Once a field has been defined, its attributes and type cannot be changed, although it can be redefined with the same attributes and types.

Parameters:
field - the field to define
Returns:
the defined field information object, including an ID assigned by the engine.
Throws:
SearchEngineException - if the field is already defined and there is a mismatch in the attributes or type of the given field or if there is an error adding the field to the index

getFieldInfo

FieldInfo getFieldInfo(java.lang.String name)
Gets the information for a field.

Parameters:
name - the name of the field for which we want information
Returns:
the information associated with this field, or null if this name is not the name of a defined field.

getTermVariations

java.util.Set<java.lang.String> getTermVariations(java.lang.String term)
Gets the set of variations on a term that will be generated by default when searching for the term. The composition of the set depends on the configuration of the engine and will be returned in no particular order.

Parameters:
term - the term for which we want variants
Returns:
the set of variants for the term, which will always include the term itself. The case of the variants will match (as much as possible) the case of the provided term.

getTermStats

TermStats getTermStats(java.lang.String term)
Gets the collection level term statistics for the given term.

Parameters:
term - the term for which we want the statisitics
Returns:
the statistics associated with the given term, or null if the term does not occur in the collection.

getDocument

Document getDocument(java.lang.String key)
Gets a document with a given key.

Parameters:
key - the key for the document to retrieve.
Returns:
a document with the given key. If the given key does not occur in the index, then null is returned.
See Also:
index(Document), createDocument(java.lang.String), SimpleIndexer.indexDocument(Document)

getDocuments

java.util.List<Document> getDocuments(java.util.List<java.lang.String> keys)
Gets a list of documents with the given keys.

Parameters:
keys - the list of keys for which we want documents
Returns:
a list of the documents corresponding to the keys in the list. Note that this list will not include documents that have been deleted and no documents will be returned for keys that do not exist in the index, so there may not be a one-to-one correspondence between the keys in keys and the documents in the returned list.

createDocument

Document createDocument(java.lang.String key)
Creates a new document with a given key.

Parameters:
key - the key for the new document
Returns:
a new document with the given key. If the given key is already in the index, then null is returned.
See Also:
index(Document), getDocument(java.lang.String), SimpleIndexer.indexDocument(Document)

index

void index(java.lang.String key,
           java.util.Map document)
           throws SearchEngineException
Indexes a document into the database. If the document already exists in the database, the new information will replace the old.

Note that simply calling index will not make a document available for searching. Documents are not available until they are flushed to disk. This can be accomplished using the flush method.

Parameters:
key - The document key for this document. The key should be unique in the index. If the key passed in matches a document that is already in the index, the information for this document will replace the existing one.
document - A map from field names to the value for that field. If a particular field has a type or attributes associated with it, they will be respected during indexing. If a field has no attributes associated with it, the field will be tokenized and indexed. If you desire consistent treatment of documents for both indexing and highlighting, then we strongly suggest that you use a LinkedHashMap for this parameter.
Throws:
SearchEngineException - if there are any errors during the indexing.
See Also:
LinkedHashMap

index

void index(Indexable document)
           throws SearchEngineException
Indexes a document into the database. If the document already exists in the database, the new information will replace the old.

Note that simply calling index will not make a document available for searching. Documents are not available until they are flushed to disk. This can be accomplished using the flush method.

Parameters:
document - the document to index.
Throws:
SearchEngineException - if there are any errors during the indexing.

index

void index(Document document)
           throws SearchEngineException
Indexes a document into the database. If the document already exists in the database, the new information will replace the old.

In this case, the data for the document will be flushed to disk as soon as the document is indexed. For indexing a large number of documents, you may wish to consider the SimpleIndexer.indexDocument(Document) method, which will allow you more control over when the data will be flushed to disk.

Parameters:
document - a document to be indexed
Throws:
SearchEngineException - if there are any errors during the indexing.
See Also:
getDocument(java.lang.String), SimpleIndexer.indexDocument(Document)

flush

void flush()
           throws SearchEngineException
Flushes the indexed material currently held in memory to the disk, making it available for searching.

Throws:
SearchEngineException - if there is any error flusing the data to disk

isIndexed

boolean isIndexed(java.lang.String key)
Checks to see if a document is in the index.

Parameters:
key - the key for the document that we wish to check.
Returns:
true if the document is in the index. A document is considered to be in the index if a document with the given key appears in the index and has not been deleted.

delete

void delete(java.lang.String key)
Deletes a document from the index.

Parameters:
key - The key for the document to delete.

delete

void delete(java.util.List<java.lang.String> keys)
            throws SearchEngineException
Deletes a number of documents from the index.

Parameters:
keys - The keys of the documents to delete
Throws:
SearchEngineException - if there is any error deleting the documents from the index

search

ResultSet search(java.lang.String query)
                 throws SearchEngineException
Runs a query against the index, returning a set of results. The result set will be sorted in descending order of score, by default.

Specified by:
search in interface Searcher
Parameters:
query - The query to run, in our query syntax.
Returns:
a set of results containing the documents that match the query
Throws:
SearchEngineException

search

ResultSet search(java.lang.String query,
                 java.lang.String sortOrder)
                 throws SearchEngineException
Runs a query against the index, returning a set of results.

Specified by:
search in interface Searcher
Parameters:
query - The query to run, in our query syntax.
sortOrder - How the results should be sorted. This is a set of comma-separated field names, each preceeded by a + (for increasing order) or by a - (for decreasing order).
Returns:
a set of results containing the documents that match the query
Throws:
SearchEngineException - if there are any errors evaluating the query

search

ResultSet search(java.lang.String query,
                 java.lang.String sortOrder,
                 int defaultOperator,
                 int grammar)
                 throws SearchEngineException
Runs a query against the index, returning a set of results.

Specified by:
search in interface Searcher
Parameters:
query - The query to run, in our query syntax.
sortOrder - How the results should be sorted. This is a set of comma-separated field names, each preceeded by a + (for increasing order) or by a - (for decreasing order).
defaultOperator - specified the default operator to use when no other operator is provided between terms in the query. Valid values are defined in the Searcher interface
grammar - specifies the grammar to use to parse the query. Valid values ar edefined in the Searcher interface
Returns:
a set of results for this search.
Throws:
SearchEngineException - if there is any error during the search.

search

ResultSet search(Element el)
                 throws SearchEngineException
Runs a query against the index, returning a set of results.

Parameters:
el - the query, expressed using the programattic query API
Returns:
the set of documents that match the query
Throws:
SearchEngineException - if there are any errors evaluating the query

search

ResultSet search(Element el,
                 java.lang.String sortOrder)
                 throws SearchEngineException
Runs a query against the index, returning a set of results.

Parameters:
el - the query, expressed using the programattic query API
sortOrder - How the results should be sorted. This is a set of comma-separated field names, each preceeded by a + (for increasing order) or by a - (for decreasing order).
Returns:
the set of documents that match the query
Throws:
SearchEngineException - if there are any errors evaluating the query

getResults

ResultSet getResults(java.util.Collection<java.lang.String> keys)
Gets a set of results corresponding to the document keys passed in. This is a convenience method to go from document keys to something upon which more complicated computations can be done.

Parameters:
keys - a list of document keys for which we want results.
Returns:
a result set that includes the documents whose keys occur in the list. All documents in the set will be assigned a score of 1. Note that documents that have been deleted will not appear in the result set.

getMatching

java.util.SortedSet<FieldValue> getMatching(java.lang.String field,
                                            java.lang.String pattern)
Gets the values for the given field that match the given pattern.

Parameters:
field - the saved, string field against whose values we will match. If the named field is not saved or is not a string field, then the empty set will be returned.
pattern - the pattern for which we'll find matching field values.
Returns:
a sorted set of field values. This set will be ordered by the proportion of the field value that is covered by the given pattern.

getFieldIterator

java.util.Iterator<java.lang.Object> getFieldIterator(java.lang.String field)
Gets an iterator for all the values in a field. The values are returned by the iterator in the order defined by the field type.

Parameters:
field - The name of the field who's values we need an iterator for.
Returns:
An iterator for the given field. If the field is not a saved field, then an iterator that will return no values will be returned. Note that the application will need to know what type of values to get from the list!
See Also:
FieldInfo.getType()

getAllFieldValues

java.util.List<java.lang.Object> getAllFieldValues(java.lang.String field,
                                                   java.lang.String key)
Gets all of the field values associated with a given field in a given document.

Parameters:
field - The name of the field for which we want the values.
key - The key of the document whose values we want.
Returns:
A List containing values of the appropriate type. If the named field is not a saved field, or if the given document key is not in the index, then an empty list is returned.

getFieldValue

java.lang.Object getFieldValue(java.lang.String field,
                               java.lang.String key)
Gets a single field value associated with a given field in a given document.

Parameters:
field - The name of the field for which we want the values.
key - The key of the document whose values we want.
Returns:
An Object of the appropriate type for the named field. If the named field is not a saved field, or if the given document key is not in the index, then null is returned.

Note that if there are multiple values for the given field, there is no guarantee which of the values will be returned by this method.

See Also:
getAllFieldValues(java.lang.String, java.lang.String)

getTopFieldValues

java.util.List<FieldFrequency> getTopFieldValues(java.lang.String field,
                                                 int n,
                                                 boolean ignoreCase)
Gets a list of the top n most frequent field values for a given named field. If n is < 1, all field values are returned, in order of their frequency from most to least frequent.

Parameters:
field - the name of the field to rank
n - the number of field values to return
Returns:
a List containing field values of the appropriate type for the field, ordered by frequency. The scores associated with the field values are their frequency in the collection.

getDocumentVector

DocumentVector getDocumentVector(java.lang.String key)
                                 throws SearchEngineException
Gets a document vector for the given key.

Parameters:
key - the key of the document whose vector we will return
Returns:
the vector for that document, or null if that key does not appear in this index.
Throws:
SearchEngineException - if there is any error retrieving the document vector for the document associated with the given key.

getDocumentVector

DocumentVector getDocumentVector(java.lang.String key,
                                 java.lang.String field)
Gets a document vector for given vectored field for the given key.

Parameters:
key - the key of the document whose vector we will return
field - the field for which we want a document vector. If this parameter is null, then a vector containing the terms from all vectored fields in the document is returned. If this value is the empty string, then a vector for the contents of the document that are not in any field are returned. If this value is the name of a field that was not vectored during indexing, an empty vector will be returned.
Returns:
the vector for that document, or null if that key does not appear in this index.

getDocumentVector

DocumentVector getDocumentVector(java.lang.String key,
                                 WeightedField[] fields)
Gets a composite document vector for the given linear combination of vectored fields for the given key.

Parameters:
key - the key of the document whose vector we will return
fields - the fields from which the document vector will be composed.
Returns:
the vector for that document, or null if that key does not appear in this index.

getDocumentVector

DocumentVector getDocumentVector(Document doc,
                                 java.lang.String field)
                                 throws SearchEngineException
Creates a document vector for the given document as though it occurred in the index.

Parameters:
doc - a document for which we want a document vector. This document may be in the index or may be generated via the createDocument(java.lang.String) method. The document will be processed as though it were being indexed in order to extract the appropriate document vector, but the data resulting from this processing will not be added to the index.
field - the field for which we want a document vector. If this parameter is null, then a vector containing the terms from all vectored fields in the document is returned. If this value is the empty string, then a vector for the contents of the document that are not in any field are returned. If this value is the name of a field that was not vectored during indexing, an empty vector will be returned.
Returns:
the vector for the given document, taking into account the restrictions in the field parameter
Throws:
SearchEngineException

getDocumentVector

DocumentVector getDocumentVector(Document doc,
                                 WeightedField[] fields)
                                 throws SearchEngineException
Creates a composite document vector for the given document as though it occurred in the index.

Parameters:
doc - a document for which we want a document vector. This document may be in the index or may be generated via the createDocument(java.lang.String) method. The document will be processed as though it were being indexed in order to extract the appropriate document vector, but the data resulting from this processing will not be added to the index.
fields - the fields for which we want a document vector.
Throws:
SearchEngineException

getDistance

double getDistance(java.lang.String k1,
                   java.lang.String k2,
                   java.lang.String name)
Gets the distance between two documents, based on the values stored in in a given feature vector saved field.

Parameters:
k1 - the first key
k2 - the second key
name - the name of the feature vector field for which we want the distance
Returns:
the euclidean distance between the two documents' feature vectors.

getSimilar

ResultSet getSimilar(java.lang.String key,
                     java.lang.String name)
Gets a set of results ordered by similarity to the given document, calculated by computing the euclidean distance based on the feature vector stored in the given field.

Parameters:
key - the key of the document to which we'll compute similarity.
name - the name of the field containing the feature vectors that we'll use in the similarity computation.
Returns:
a result set containing the distance between the given document and all of the documents. The scores assigned to the documents are the distance scores, and so the returned set will be set to be sorted in increasing order of the document score. It is up to the application to handle the scores in whatever way they deem appropriate.

getQueryStats

QueryStats getQueryStats()
Gets the combined query stats for any queries run by the engine.

Returns:
the combined query statistics
See Also:
resetQueryStats()

resetQueryStats

void resetQueryStats()
Resets the query stats for the engine.

See Also:
getQueryStats()

purge

void purge()
Purges all of the data in the index. This operation is not reversible! Any documents in the indexing pipeline will be flushed out and purged during this process. Any meta data in the MetaDataStore will also be purged. Indexing documents while purge is called isn't recommended. If you are using a SimpleIndexer, you should call SimpleIndexer.finish() before calling purge.


merge

boolean merge()
Performs a merge in the index, if one is necessary. Returns control to the caller when the merge is completed.

Returns:
true if a merge was performed, false otherwise.

optimize

void optimize()
              throws SearchEngineException
Merges all of the partitions in the index into a single partition. Typically an index with a single partition will have better query performance than one with many partitions.

Throws:
SearchEngineException - if there was any error during the merge.

recover

void recover()
             throws SearchEngineException
Attempts to recover the index after an unruly shutdown. Makes sure that lock files are removed and that any partial files resulting from failed partition dumps or merges are removed. Note that this method should be called only when you are sure that the current search engine is the only one open for a given index.

Throws:
SearchEngineException - if there is any problem recovering the index.

export

void export(java.io.PrintWriter o)
            throws java.io.IOException
Outputs an XML representation of the search index including all saved and vectored fields.

Parameters:
o - a print writer to which the index will be exported.
Throws:
java.io.IOException - if there is any error writing the data

getDocumentIterator

java.util.Iterator<Document> getDocumentIterator()
Gets an iterator for all of the non-deleted documents in the collection.

Returns:
an iterator for all of the non-deleted documents in the collection.

close

void close()
           throws SearchEngineException
Closes the engine. If you wish to reuse a closed engine, you must use the factory class to get a new instance of the engine!

Throws:
SearchEngineException - if there is any error closing the search engine

getName

java.lang.String getName()
Gets the name of this engine, if one has been assigned by the application.

Returns:
The name of the engine assigned by the application, or null if none has been assigned.

getNDocs

int getNDocs()
Gets the number of undeleted documents that the index contains.

Returns:
the number of undeleted documents in the index

setQueryConfig

void setQueryConfig(QueryConfig queryConfig)
Sets the query configuration to use for subsequent queries.

Parameters:
queryConfig - a set of properties describing the query configuration.

getQueryConfig

QueryConfig getQueryConfig()
Gets the query configuration that the engine is currently using.

Returns:
the current query configuration.

getSimpleIndexer

SimpleIndexer getSimpleIndexer()
Gets a simple indexer that can be used for simple indexing.

Returns:
a simple indexer that will index documents into this engine.

getHLPipeline

HLPipeline getHLPipeline()
Gets a pipeline that can be used for highlighting.

Returns:
an indexing pipeline that can be used for highlighting hit documents.

getPM

PartitionManager getPM()
Gets the partition manager for this search engine. This is for testing purposes only and not for general consumption.

Returns:
The partition manager for this engine.

flushClassifiers

void flushClassifiers()
                      throws SearchEngineException
Flushes all the classifier data currently in memory to disk.

Throws:
SearchEngineException - if there is any error dumping the classifiers.

getManager

PartitionManager getManager()
Gets the partition manager associated with this search engine.

Returns:
The partition manager associated with this search engine.

getIndexConfig

IndexConfig getIndexConfig()
Gets the index configuration in use by this search engine.

Returns:
The index configuration in use by this search engine.

getMetaDataStore

MetaDataStore getMetaDataStore()
                               throws SearchEngineException
Gets the MetaDataStore for this index. This is a singleton that stores index-related global variables.

Returns:
the MetaDataStore instance
Throws:
SearchEngineException - if there is any error getting the metadata store