|
Regain 2.1.0-STABLE API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sf.regain.search.IndexSearcherManager
public class IndexSearcherManager
Encapsulates the search on the lucene search index.
Additionally, every 10 seconds we check if there is a new index available. Search queries cannot be execute during index update. If yes, the new index is used and the old saved in /backup/.
Nested Class Summary | |
---|---|
private class |
IndexSearcherManager.IndexUpdateThread
WARNING: Thread Programming ahead. |
Field Summary | |
---|---|
private static String |
BACKUP_INDEX_SUBDIR
Der Name des Index-Unterverzeichnisses, in das der letzte Index gesichert werden soll. |
private org.apache.lucene.analysis.Analyzer |
mAnalyzer
Der Analyzer, der für Suchen verwendet werden soll. |
private File |
mBackupIndexDir
Das Verzeichnis, in das der letzte Index gesichert werden soll. |
private HashMap<String,String[]> |
mFieldTermHash
Holds for a field name (String) all distinct values the index has for that field (String[]). |
private static HashMap<String,IndexSearcherManager> |
mIndexManagerHash
enthält für ein Index-Verzeichnis (key) den zust�ndigen IndexWriterManager (value). |
private IndexSearcherManager.IndexUpdateThread |
mIndexUpdateThread
Der Thread, der alle 10 Sekunden Prüft, ob ein neuer Suchindex vorhanden ist. |
private File |
mNewIndexDir
Das Verzeichnis, in das der neue Index gestellt wird, sobald er fertig ist. |
private org.apache.lucene.search.SearcherManager |
mSearcherManager
Keeps reference of the current IndexSearcher. |
private File |
mWorkingIndexDir
Das Verzeichnis, in dem der genutzte Index steht. |
private static String |
NEW_INDEX_SUBDIR
Der Name des Index-Unterverzeichnisses, in das der neue Index gestellt wird, sobald er fertig ist. |
private static String |
WORKING_INDEX_SUBDIR
Der Name des Index-Unterverzeichnisses, in dem der genutzte Index steht. |
Constructor Summary | |
---|---|
private |
IndexSearcherManager(String indexDir)
Erzeugt eine neue IndexWriterManager-Instanz. |
Method Summary | |
---|---|
private void |
checkForIndexUpdate()
Check if there is a new index available. |
void |
close()
|
static void |
closeAll()
|
protected void |
createAnalyzer()
|
private void |
ensureIndexDirExists()
Check if the index directory exists. |
org.apache.lucene.analysis.Analyzer |
getAnalyzer()
Gibt den Analyzer zurück, der für die Suche genutzt werden soll. |
int |
getDocumentCount()
Gets the total number of documents in the index. |
String[] |
getFieldValues(String field)
Gets all distinct values a index has for a certain field. |
org.apache.lucene.search.IndexSearcher |
getIndexSearcher()
Returns the IndexSearcher. |
static IndexSearcherManager |
getInstance(String indexDir)
Return the index searcher manager of a specific directory. |
protected String[] |
readFieldValues(String field)
Read files from index cache file (synchronised, as this requires an searchindex/index directory) |
void |
releaseIndexSearcher(org.apache.lucene.search.IndexSearcher searcher)
Release an indexSearcher that was acquired by getIndexSearcher() NOTE: It musn't be used afterwards! |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final String NEW_INDEX_SUBDIR
Wenn dieses Verzeichnis existiert, dann wird die Suche auf den darin enthaltenen Index umgestellt.
private static final String WORKING_INDEX_SUBDIR
private static final String BACKUP_INDEX_SUBDIR
private static HashMap<String,IndexSearcherManager> mIndexManagerHash
private File mNewIndexDir
Wenn dieses Verzeichnis existiert, dann wird die Suche auf den darin enthaltenen Index umgestellt.
private File mWorkingIndexDir
private File mBackupIndexDir
private org.apache.lucene.analysis.Analyzer mAnalyzer
private IndexSearcherManager.IndexUpdateThread mIndexUpdateThread
private HashMap<String,String[]> mFieldTermHash
private org.apache.lucene.search.SearcherManager mSearcherManager
Constructor Detail |
---|
private IndexSearcherManager(String indexDir) throws RegainException
indexDir
- Das Verzeichnis, in dem der Index steht.
RegainException
- Wenn kein Index-Verzeichnis existiert.Method Detail |
---|
public static IndexSearcherManager getInstance(String indexDir) throws RegainException
indexDir
- Directory of the index.
RegainException
- If the directory does not exist or is not an index.public String[] getFieldValues(String field) throws RegainException
field
- The field to get the values for.
RegainException
- If reading the values failed.protected String[] readFieldValues(String field) throws RegainException
field
- The field to get the values for.
RegainException
- If reading the values failed.public int getDocumentCount() throws RegainException
RegainException
- If getting the document count failed.public org.apache.lucene.analysis.Analyzer getAnalyzer() throws RegainException
RegainException
- Wenn die Erzeugung des Analyzers fehl schlug.protected void createAnalyzer() throws RegainException
RegainException
private void ensureIndexDirExists() throws RegainException
RegainException
private void checkForIndexUpdate() throws RegainException
NOTE: We synchronize this index update with all methods that directly access the underlying files.
RegainException
- If error during update of index.public org.apache.lucene.search.IndexSearcher getIndexSearcher() throws RegainException
RegainException
public void releaseIndexSearcher(org.apache.lucene.search.IndexSearcher searcher) throws RegainException
searcher
- Reference to the index searcher. (Null is silently ignored.)
RegainException
public void close() throws IOException
close
in interface Closeable
IOException
public static void closeAll() throws IOException
IOException
|
Regain 2.1.0-STABLE API | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |