it.sistematica.isharedoc.service.search.engine.impl
Class IndexManagerImpl

java.lang.Object
  extended by it.sistematica.isharedoc.service.search.engine.impl.IndexManagerImpl
All Implemented Interfaces:
IndexManager

public class IndexManagerImpl
extends java.lang.Object
implements IndexManager


Nested Class Summary
 
Nested classes/interfaces inherited from interface it.sistematica.isharedoc.service.search.engine.IndexManager
IndexManager.WriteAction
 
Field Summary
 
Fields inherited from interface it.sistematica.isharedoc.service.search.engine.IndexManager
SERVICE_FULL_REINDEX_TIME, SERVICE_ID, SERVICE_PARTIAL_REINDEX_TIME, WRITE_LOCK_TIMEOUT
 
Constructor Summary
IndexManagerImpl(java.lang.String name, java.lang.String directoryName, java.util.List<Indexer> indexers)
           
 
Method Summary
 void addIndexer(Indexer idx)
           
 org.apache.lucene.document.Document findById(org.apache.lucene.search.IndexSearcher isearcher, java.lang.String id)
           
 org.apache.lucene.analysis.Analyzer getAnalyzer()
           
 java.lang.String getContentDirectory(java.lang.String partition)
           
 java.util.Date getFullReindexDate(java.lang.String partitionId)
           
 org.apache.lucene.index.Term getIdTerm(org.apache.lucene.document.Document doc)
           
 org.apache.lucene.index.Term getIdTerm(java.lang.Object obj)
           
 org.apache.lucene.index.Term getIdTerm(java.lang.String value)
           
 java.lang.String getIdValue(org.apache.lucene.document.Document doc)
           
 java.lang.String getIdValue(java.lang.Object obj)
           
 Indexer getIndexerForClass(java.lang.Class<?> clazz)
           
 java.util.Collection<Indexer> getIndexers()
           
 java.lang.String getName()
           
 java.util.Date getPartialReindexDate(java.lang.String name, java.lang.String partitionId)
           
 java.lang.String getPartitionValue(org.apache.lucene.document.Document doc)
           
 java.lang.String getPartitionValue(java.lang.Object obj)
           
 org.apache.lucene.document.Document getServiceDoc(java.lang.String partitionId)
           
 int getTotalDocs(java.lang.String partitionId)
           
 org.apache.lucene.util.Version getVersion()
           
 void indexDelete(java.lang.Object obj)
           
 void indexDelete(java.lang.String partition, java.lang.String id)
           
 void indexSave(java.lang.Object obj)
           
 void indexSave(java.lang.Object obj, java.lang.Class<?> clazz)
           
 boolean isReindexInProgress()
           
 org.apache.lucene.store.Directory openDirectory(java.lang.String partition)
           
 org.apache.lucene.index.DirectoryReader openReader(java.lang.String partition)
           
 org.apache.lucene.search.IndexSearcher openSearcher(java.lang.String partition)
           
 void rebuild(java.util.Collection<java.lang.Class<?>> classes, Partition partition)
           
 void runCrawler(java.lang.Class<?> clazz, java.lang.String attributeName, int howMany)
           
 void search(SearchAction action, java.lang.String partitionId)
           
 java.util.Date searchModified(java.lang.Class<?> clazz, java.lang.String dateProperty, java.util.Date lastDate, int howMany)
           
 void setContentDirectory(java.lang.String directoryName)
           
 void updateFullReindexDate(java.util.Date date, java.lang.String partitionId)
           
 void updatePartialReindexDate(java.lang.String name, java.util.Date date, java.lang.String partitionId)
           
 void write(IndexManager.WriteAction action, java.lang.String partition)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IndexManagerImpl

public IndexManagerImpl(java.lang.String name,
                        java.lang.String directoryName,
                        java.util.List<Indexer> indexers)
Method Detail

getName

public java.lang.String getName()
Specified by:
getName in interface IndexManager

setContentDirectory

public void setContentDirectory(java.lang.String directoryName)
Specified by:
setContentDirectory in interface IndexManager

getVersion

public org.apache.lucene.util.Version getVersion()
Specified by:
getVersion in interface IndexManager

indexSave

public void indexSave(java.lang.Object obj)
Specified by:
indexSave in interface IndexManager

indexSave

public void indexSave(java.lang.Object obj,
                      java.lang.Class<?> clazz)
Specified by:
indexSave in interface IndexManager

indexDelete

public void indexDelete(java.lang.String partition,
                        java.lang.String id)
Specified by:
indexDelete in interface IndexManager

indexDelete

public void indexDelete(java.lang.Object obj)
Specified by:
indexDelete in interface IndexManager

isReindexInProgress

public boolean isReindexInProgress()
Specified by:
isReindexInProgress in interface IndexManager

rebuild

public void rebuild(java.util.Collection<java.lang.Class<?>> classes,
                    Partition partition)
Specified by:
rebuild in interface IndexManager

findById

public org.apache.lucene.document.Document findById(org.apache.lucene.search.IndexSearcher isearcher,
                                                    java.lang.String id)
Specified by:
findById in interface IndexManager

openSearcher

public org.apache.lucene.search.IndexSearcher openSearcher(java.lang.String partition)

openReader

public org.apache.lucene.index.DirectoryReader openReader(java.lang.String partition)

openDirectory

public org.apache.lucene.store.Directory openDirectory(java.lang.String partition)

getFullReindexDate

public java.util.Date getFullReindexDate(java.lang.String partitionId)
Specified by:
getFullReindexDate in interface IndexManager

updateFullReindexDate

public void updateFullReindexDate(java.util.Date date,
                                  java.lang.String partitionId)
Specified by:
updateFullReindexDate in interface IndexManager

getPartialReindexDate

public java.util.Date getPartialReindexDate(java.lang.String name,
                                            java.lang.String partitionId)
Specified by:
getPartialReindexDate in interface IndexManager

updatePartialReindexDate

public void updatePartialReindexDate(java.lang.String name,
                                     java.util.Date date,
                                     java.lang.String partitionId)
Specified by:
updatePartialReindexDate in interface IndexManager

getServiceDoc

public org.apache.lucene.document.Document getServiceDoc(java.lang.String partitionId)
Specified by:
getServiceDoc in interface IndexManager

getIdTerm

public org.apache.lucene.index.Term getIdTerm(java.lang.Object obj)

getIdTerm

public org.apache.lucene.index.Term getIdTerm(org.apache.lucene.document.Document doc)

getPartitionValue

public java.lang.String getPartitionValue(org.apache.lucene.document.Document doc)

getIdValue

public java.lang.String getIdValue(java.lang.Object obj)

getPartitionValue

public java.lang.String getPartitionValue(java.lang.Object obj)

getIdTerm

public org.apache.lucene.index.Term getIdTerm(java.lang.String value)

getIdValue

public java.lang.String getIdValue(org.apache.lucene.document.Document doc)

addIndexer

public void addIndexer(Indexer idx)
Specified by:
addIndexer in interface IndexManager

getIndexerForClass

public Indexer getIndexerForClass(java.lang.Class<?> clazz)
Specified by:
getIndexerForClass in interface IndexManager

getIndexers

public java.util.Collection<Indexer> getIndexers()
Specified by:
getIndexers in interface IndexManager

write

public void write(IndexManager.WriteAction action,
                  java.lang.String partition)
Specified by:
write in interface IndexManager

runCrawler

@Transactional
public void runCrawler(java.lang.Class<?> clazz,
                                     java.lang.String attributeName,
                                     int howMany)
Specified by:
runCrawler in interface IndexManager

searchModified

@Transactional
public java.util.Date searchModified(java.lang.Class<?> clazz,
                                                   java.lang.String dateProperty,
                                                   java.util.Date lastDate,
                                                   int howMany)
Specified by:
searchModified in interface IndexManager

getAnalyzer

public org.apache.lucene.analysis.Analyzer getAnalyzer()
Specified by:
getAnalyzer in interface IndexManager

getContentDirectory

public java.lang.String getContentDirectory(java.lang.String partition)
Specified by:
getContentDirectory in interface IndexManager

search

public void search(SearchAction action,
                   java.lang.String partitionId)
Specified by:
search in interface IndexManager

getTotalDocs

public int getTotalDocs(java.lang.String partitionId)
Specified by:
getTotalDocs in interface IndexManager