|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager
public class DefaultLuceneSearchEngineIndexManager
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.compass.core.engine.SearchEngineIndexManager |
|---|
SearchEngineIndexManager.IndexOperationCallback, SearchEngineIndexManager.IndexOperationPlan, SearchEngineIndexManager.ReplaceIndexCallback |
| Field Summary | |
|---|---|
static String |
CLEAR_CACHE_NAME
|
| Constructor Summary | |
|---|---|
DefaultLuceneSearchEngineIndexManager(LuceneSearchEngineFactory searchEngineFactory,
LuceneSearchEngineStore searchEngineStore)
|
|
| Method Summary | |
|---|---|
String[] |
calcSubIndexes(String[] subIndexes,
String[] aliases,
Class[] types)
Returns the sub indexes the intersect with the given sub indexes and aliases provided. |
void |
checkAndClearIfNotifiedAllToClearCache()
Manual check if the notified to clear the cache globally. |
void |
cleanIndex()
Cleans the index from data (by deleting and creating an empty one). |
void |
cleanIndex(String subIndex)
Cleans the index from data (by deleting and creating an empty one). |
void |
clearCache()
Clears any internal caching done by the index. |
void |
clearCache(String subIndex)
Clears any internal caching done by the index for the specified sub-index. |
void |
close()
Closes the index manager. |
void |
createIndex()
Creates an index data. |
void |
deleteIndex()
Deletes the index. |
protected void |
doCheckAndClearIfNotifiedAllToClearCache()
|
protected void |
doOperate(SearchEngineIndexManager.IndexOperationCallback callback)
|
protected void |
doReplaceIndex(SearchEngineIndexManager indexManager,
SearchEngineIndexManager.ReplaceIndexCallback callback)
|
protected Directory |
getDirectory(String subIndex)
|
ExecutorManager |
getExecutorManager()
|
LuceneSettings |
getSettings()
|
LuceneSearchEngineStore |
getStore()
|
String[] |
getSubIndexes()
Returns the sub indexes that Compass handles. |
TransactionContext |
getTransactionContext()
|
boolean |
indexExists()
Returns true if the index exists. |
boolean |
isCached()
Returns true if one of the sub indexes is cached. |
boolean |
isCached(String subIndex)
Returns true if the sub index is cached. |
boolean |
isIndexCompound()
|
boolean |
isIndexUnCompound()
|
boolean |
isLocked()
Returns true if one of the sub indexes is locked. |
boolean |
isLocked(String subIndex)
Returns true if the given sub index is locked. |
boolean |
isRunning()
Returns true if the index manage is running |
void |
notifyAllToClearCache()
Notifies all the compass instances that are working with the same index to clear cache. |
LuceneIndexHolder |
openIndexHolderBySubIndex(String subIndex)
|
IndexSearcher |
openIndexSearcher(IndexReader reader)
|
IndexWriter |
openIndexWriter(CompassSettings settings,
Directory dir,
boolean create)
|
IndexWriter |
openIndexWriter(CompassSettings settings,
Directory dir,
boolean autoCommit,
boolean create)
|
IndexWriter |
openIndexWriter(CompassSettings settings,
Directory dir,
boolean autoCommit,
boolean create,
IndexDeletionPolicy deletionPolicy)
|
IndexWriter |
openIndexWriter(CompassSettings settings,
Directory dir,
boolean autoCommit,
boolean create,
IndexDeletionPolicy deletionPolicy,
Analyzer analyzer)
|
IndexWriter |
openIndexWriter(CompassSettings settings,
Directory dir,
IndexDeletionPolicy deletionPolicy)
|
IndexWriter |
openIndexWriter(CompassSettings settings,
String subIndex)
|
IndexWriter |
openIndexWriter(CompassSettings settings,
String subIndex,
boolean autoCommit)
|
MultiSearcher |
openMultiSearcher(Searchable[] searchers)
|
void |
operate(SearchEngineIndexManager.IndexOperationCallback callback)
A general api for index operations. |
void |
performScheduledTasks()
Performs scheduled tasks that are usually derived basde on the actual index storage used. |
String[] |
polyCalcSubIndexes(String[] subIndexes,
String[] aliases,
Class[] types)
Returns the sub indexes that intersect with the given sub indexes, aliases and types. |
void |
refreshCache()
Refresh any internal caching done by the index. |
void |
refreshCache(String subIndex)
Refresh any internal caching done by the index for the specified sub-index. |
void |
refreshCache(String subIndex,
IndexSearcher indexSearcher)
|
void |
releaseLock(String subIndex)
Releases a lock for the given sub index. |
void |
releaseLocks()
Releases all the locks held over all the possbile sub indexes. |
void |
replaceIndex(SearchEngineIndexManager indexManager,
SearchEngineIndexManager.ReplaceIndexCallback callback)
Replaces the index data that is used by the current instance, with the one that is pointed by the given indexManager. |
boolean |
requiresAsyncTransactionalContext()
Returns true if a transaction needs to be started when performing operations
with this store. |
void |
setWaitForCacheInvalidationBeforeSecondStep(long timeToWaitInMillis)
Since there might be several instances of Compass running against the same index, they need to be globally notified to invalidate the cache after the commit lock has been obtained for the second step on the SearchEngineIndexManager.operate(org.compass.core.engine.SearchEngineIndexManager.IndexOperationCallback)
or SearchEngineIndexManager.replaceIndex(org.compass.core.engine.SearchEngineIndexManager, org.compass.core.engine.SearchEngineIndexManager.ReplaceIndexCallback). |
protected boolean |
shouldInvalidateCache(LuceneIndexHolder indexHolder)
Checks if a an index holder should be invalidated. |
void |
start()
Starts the index manager |
void |
stop()
Stops / closes the index manager |
boolean |
subIndexExists(String subIndex)
Returns true if the sub index exists. |
boolean |
supportsConcurrentOperations()
Returns true if the index store supports concurrent operations. |
boolean |
verifyIndex()
Verify the index data. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String CLEAR_CACHE_NAME
| Constructor Detail |
|---|
public DefaultLuceneSearchEngineIndexManager(LuceneSearchEngineFactory searchEngineFactory,
LuceneSearchEngineStore searchEngineStore)
| Method Detail |
|---|
public void createIndex()
throws SearchEngineException
SearchEngineIndexManager
createIndex in interface SearchEngineIndexManagerSearchEngineException
public void deleteIndex()
throws SearchEngineException
SearchEngineIndexManager
deleteIndex in interface SearchEngineIndexManagerSearchEngineException
public void cleanIndex()
throws SearchEngineException
SearchEngineIndexManager
cleanIndex in interface SearchEngineIndexManagerSearchEngineException
public void cleanIndex(String subIndex)
throws SearchEngineException
SearchEngineIndexManager
cleanIndex in interface SearchEngineIndexManagerSearchEngineException
public boolean verifyIndex()
throws SearchEngineException
SearchEngineIndexManagertrue if the index was created. If the index
exists, and it's LuceneEnvironment.SearchEngineIndex.USE_COMPOUND_FILE
changed it's settings, will compound / un-compound the index accordingly.
verifyIndex in interface SearchEngineIndexManagerSearchEngineException
public boolean indexExists()
throws SearchEngineException
SearchEngineIndexManagertrue if the index exists.
indexExists in interface SearchEngineIndexManagerSearchEngineException
public void operate(SearchEngineIndexManager.IndexOperationCallback callback)
throws SearchEngineException
SearchEngineIndexManagerSearchEngineIndexManager.IndexOperationCallback.
operate in interface SearchEngineIndexManagerSearchEngineException
protected void doOperate(SearchEngineIndexManager.IndexOperationCallback callback)
throws SearchEngineException
SearchEngineException
public void replaceIndex(SearchEngineIndexManager indexManager,
SearchEngineIndexManager.ReplaceIndexCallback callback)
throws SearchEngineException
SearchEngineIndexManagerindexManager. A callback interface can be registered if the index is
dynamically created.
The replace process is safe, in terms that it will aquire dirty locks and read locks, so the index can be safely replaced while it is being used.
replaceIndex in interface SearchEngineIndexManagerSearchEngineException
protected void doReplaceIndex(SearchEngineIndexManager indexManager,
SearchEngineIndexManager.ReplaceIndexCallback callback)
throws SearchEngineException
SearchEngineException
public void notifyAllToClearCache()
throws SearchEngineException
SearchEngineIndexManager
notifyAllToClearCache in interface SearchEngineIndexManagerSearchEngineException
public boolean isCached(String subIndex)
throws SearchEngineException
SearchEngineIndexManagertrue if the sub index is cached.
isCached in interface SearchEngineIndexManagerSearchEngineException
public boolean isCached()
throws SearchEngineException
SearchEngineIndexManagertrue if one of the sub indexes is cached.
isCached in interface SearchEngineIndexManagerSearchEngineException
public void clearCache()
throws SearchEngineException
SearchEngineIndexManager
clearCache in interface SearchEngineIndexManagerSearchEngineException
public void clearCache(String subIndex)
throws SearchEngineException
SearchEngineIndexManager
clearCache in interface SearchEngineIndexManagerSearchEngineException
public void refreshCache()
throws SearchEngineException
SearchEngineIndexManager
refreshCache in interface SearchEngineIndexManagerSearchEngineException
public void refreshCache(String subIndex)
throws SearchEngineException
SearchEngineIndexManager
refreshCache in interface SearchEngineIndexManagerSearchEngineException
public void refreshCache(String subIndex,
IndexSearcher indexSearcher)
throws SearchEngineException
refreshCache in interface LuceneSearchEngineIndexManagerSearchEngineException
public LuceneIndexHolder openIndexHolderBySubIndex(String subIndex)
throws SearchEngineException
openIndexHolderBySubIndex in interface LuceneSearchEngineIndexManagerSearchEngineException
protected boolean shouldInvalidateCache(LuceneIndexHolder indexHolder)
throws IOException
IOExceptionpublic void close()
SearchEngineIndexManager
close in interface SearchEngineIndexManager
public IndexWriter openIndexWriter(CompassSettings settings,
String subIndex)
throws IOException
openIndexWriter in interface LuceneSearchEngineIndexManagerIOException
public IndexWriter openIndexWriter(CompassSettings settings,
String subIndex,
boolean autoCommit)
throws IOException
openIndexWriter in interface LuceneSearchEngineIndexManagerIOException
public IndexWriter openIndexWriter(CompassSettings settings,
Directory dir,
boolean create)
throws IOException
openIndexWriter in interface LuceneSearchEngineIndexManagerIOException
public IndexWriter openIndexWriter(CompassSettings settings,
Directory dir,
IndexDeletionPolicy deletionPolicy)
throws IOException
openIndexWriter in interface LuceneSearchEngineIndexManagerIOException
public IndexWriter openIndexWriter(CompassSettings settings,
Directory dir,
boolean autoCommit,
boolean create)
throws IOException
openIndexWriter in interface LuceneSearchEngineIndexManagerIOException
public IndexWriter openIndexWriter(CompassSettings settings,
Directory dir,
boolean autoCommit,
boolean create,
IndexDeletionPolicy deletionPolicy)
throws IOException
openIndexWriter in interface LuceneSearchEngineIndexManagerIOException
public IndexWriter openIndexWriter(CompassSettings settings,
Directory dir,
boolean autoCommit,
boolean create,
IndexDeletionPolicy deletionPolicy,
Analyzer analyzer)
throws IOException
openIndexWriter in interface LuceneSearchEngineIndexManagerIOExceptionpublic IndexSearcher openIndexSearcher(IndexReader reader)
openIndexSearcher in interface LuceneSearchEngineIndexManager
public MultiSearcher openMultiSearcher(Searchable[] searchers)
throws IOException
openMultiSearcher in interface LuceneSearchEngineIndexManagerIOExceptionpublic LuceneSearchEngineStore getStore()
getStore in interface LuceneSearchEngineIndexManagerprotected Directory getDirectory(String subIndex)
public void start()
SearchEngineIndexManager
start in interface SearchEngineIndexManagerpublic void stop()
SearchEngineIndexManager
stop in interface SearchEngineIndexManagerpublic boolean isRunning()
SearchEngineIndexManagertrue if the index manage is running
isRunning in interface SearchEngineIndexManager
public void checkAndClearIfNotifiedAllToClearCache()
throws SearchEngineException
SearchEngineIndexManager
checkAndClearIfNotifiedAllToClearCache in interface SearchEngineIndexManagerSearchEngineException
protected void doCheckAndClearIfNotifiedAllToClearCache()
throws SearchEngineException
SearchEngineException
public boolean isIndexCompound()
throws SearchEngineException
SearchEngineException
public boolean isIndexUnCompound()
throws SearchEngineException
SearchEngineException
public void performScheduledTasks()
throws SearchEngineException
SearchEngineIndexManagerThis API will be called when disabling the automatic scheduler that comes built in with Compass.
performScheduledTasks in interface SearchEngineIndexManagerSearchEngineExceptionpublic String[] getSubIndexes()
SearchEngineIndexManager
getSubIndexes in interface SearchEngineIndexManagerpublic boolean subIndexExists(String subIndex)
SearchEngineIndexManagertrue if the sub index exists.
subIndexExists in interface SearchEngineIndexManager
public boolean isLocked()
throws SearchEngineException
SearchEngineIndexManagertrue if one of the sub indexes is locked.
isLocked in interface SearchEngineIndexManagerSearchEngineException
public boolean isLocked(String subIndex)
throws SearchEngineException
SearchEngineIndexManagertrue if the given sub index is locked.
isLocked in interface SearchEngineIndexManagerSearchEngineException
public void releaseLocks()
throws SearchEngineException
SearchEngineIndexManager
releaseLocks in interface SearchEngineIndexManagerSearchEngineException
public void releaseLock(String subIndex)
throws SearchEngineException
SearchEngineIndexManager
releaseLock in interface SearchEngineIndexManagerSearchEngineException
public String[] calcSubIndexes(String[] subIndexes,
String[] aliases,
Class[] types)
SearchEngineIndexManager
calcSubIndexes in interface SearchEngineIndexManager
public String[] polyCalcSubIndexes(String[] subIndexes,
String[] aliases,
Class[] types)
SearchEngineIndexManager
polyCalcSubIndexes in interface SearchEngineIndexManagerpublic boolean requiresAsyncTransactionalContext()
SearchEngineIndexManagertrue if a transaction needs to be started when performing operations
with this store.
requiresAsyncTransactionalContext in interface SearchEngineIndexManagerpublic boolean supportsConcurrentOperations()
SearchEngineIndexManagertrue if the index store supports concurrent operations.
supportsConcurrentOperations in interface SearchEngineIndexManagerpublic void setWaitForCacheInvalidationBeforeSecondStep(long timeToWaitInMillis)
LuceneSearchEngineIndexManagerSearchEngineIndexManager.operate(org.compass.core.engine.SearchEngineIndexManager.IndexOperationCallback)
or SearchEngineIndexManager.replaceIndex(org.compass.core.engine.SearchEngineIndexManager, org.compass.core.engine.SearchEngineIndexManager.ReplaceIndexCallback).
If directly set to 0, will not wait.
setWaitForCacheInvalidationBeforeSecondStep in interface LuceneSearchEngineIndexManagerpublic LuceneSettings getSettings()
getSettings in interface LuceneSearchEngineIndexManagerpublic ExecutorManager getExecutorManager()
getExecutorManager in interface LuceneSearchEngineIndexManagerpublic TransactionContext getTransactionContext()
getTransactionContext in interface LuceneSearchEngineIndexManager
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||