public class LuceneManager
extends java.lang.Object
implements de.innovationgate.webgate.api.WGContentEventListener, de.innovationgate.webgate.api.WGDatabaseConnectListener
| Modifier and Type | Class and Description |
|---|---|
class |
LuceneManager.Indexer |
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
DOCTYPE_ATTACHMENT |
static java.lang.String |
DOCTYPE_CONTENT |
static java.lang.String |
INDEXFIELD_ALLATTACHMENTS |
static java.lang.String |
INDEXFIELD_ALLCONTENT |
static java.lang.String |
INDEXFIELD_CONTENTKEY |
static java.lang.String |
INDEXFIELD_DBKEY |
static java.lang.String |
INDEXFIELD_DOCTYPE |
static java.lang.String |
INDEXFIELD_FILENAME |
static java.lang.String |
INDEXFIELD_ISVIRTUALCONTENT |
static org.apache.log4j.Logger |
LOG |
static int |
MAX_CONCURRENT_SEARCHES |
static java.lang.String |
NATIVE_QUERYOPTION_DOCTYPE |
static java.lang.String |
NATIVE_QUERYOPTION_INCLUDEVIRTUALCONTENT
if this option is given as native query option - virtual content will be included in search results
per default virtual content is excluded
|
static java.lang.String |
QUERYOPTION_HIGHLIGHT
Boolean option to enable highlighting support
|
static java.lang.String |
QUERYOPTION_SEARCHDBKEYS
comma separated list of db_keys to search in if search scope is SEARCHSCOPE_DB_LIST
|
static java.lang.String |
QUERYOPTION_SEARCHSCOPE
search_scope for lucene search
Set to String SEARCHSCOPE_DOMAIN, SEARCHSCOPE_WGA, SEARCHSCOPE_DB, SEARCHSCOPE_DB_LIST
|
static java.lang.String |
RELATION_PREFIX |
static java.lang.String |
RELATIONGROUP_PREFIX |
static java.lang.String |
SEARCHSCOPE_DB |
static java.lang.String |
SEARCHSCOPE_DB_LIST |
static java.lang.String |
SEARCHSCOPE_DOMAIN
values for QUERYOPTION_SEARCHSCOPE
|
static java.lang.String |
SEARCHSCOPE_WGA |
static java.lang.String |
SYSPROP_DISABLE_AUTO_INDEX_OPTIMIZATION |
static java.lang.String |
SYSPROP_USE_CONSTANT_IDF_SIMILARITY |
static java.lang.String |
TAGINFO_SIMPLIFIEDQUERY |
static java.lang.String |
TAGINFO_UNSPECIFICQUERY |
static java.util.List<java.lang.String> |
TECHNICAL_ITEMS |
static java.lang.String |
VIRTUALMETA_AREA |
static java.lang.String |
VIRTUALMETA_CONTENTTYPE |
static java.lang.String |
VIRTUALMETA_DBKEY |
static java.lang.String |
VIRTUALMETA_KEY |
static java.lang.String |
VIRTUALMETA_PAGEPUBLISHED |
static java.lang.String |
VIRTUALMETA_PARENT |
static java.lang.String |
VIRTUALMETA_PATH |
static java.lang.String[] |
VIRTUALMETAS |
| Modifier and Type | Method and Description |
|---|---|
void |
closeOpenedResultSets()
close opened resultsets for current thread
|
void |
configurationHasChanged(java.util.Set newConnectedDBKeys)
wga-configuration has changed, read new configuration and do necessary index updates
|
void |
contentCreated(de.innovationgate.webgate.api.WGContentEvent contentEvent) |
void |
contentHasBeenDeleted(de.innovationgate.webgate.api.WGContentEvent event) |
void |
contentHasBeenMoved(de.innovationgate.webgate.api.WGContentEvent event) |
void |
contentHasBeenSaved(de.innovationgate.webgate.api.WGContentEvent event) |
boolean |
contentSaved(de.innovationgate.webgate.api.WGContentEvent contentEvent) |
void |
contentStatusChanged(de.innovationgate.webgate.api.WGContentEvent event) |
org.apache.lucene.search.highlight.Highlighter |
createHighlighter(java.lang.String itemOrMeta,
org.apache.lucene.search.Query query,
org.apache.lucene.search.highlight.Formatter formatter) |
org.apache.lucene.analysis.TokenStream |
createTokenStream(java.io.Reader reader,
de.innovationgate.webgate.api.WGContent content) |
org.apache.lucene.analysis.TokenStream |
createTokenStream(java.lang.String text,
de.innovationgate.webgate.api.WGContent content) |
void |
databaseConnected(de.innovationgate.webgate.api.WGDatabaseEvent event) |
void |
databaseConnectionError(de.innovationgate.webgate.api.WGDatabaseEvent event) |
void |
destroy() |
org.apache.lucene.search.Explanation |
explain(org.apache.lucene.search.Query query,
int doc) |
java.util.Map<java.lang.String,java.util.Queue<de.innovationgate.wgpublisher.lucene.LuceneManager.IndexingRequest>> |
getAdditionRequestsMap() |
int |
getBooleanQueryMaxClauseCount() |
de.innovationgate.webgate.api.WGDatabaseRevision |
getDatabaseUpdateStatus(java.lang.String dbKey) |
java.util.Map<java.lang.String,java.util.Queue<de.innovationgate.wgpublisher.lucene.LuceneManager.IndexingRequest>> |
getDeletionRequestsMap() |
org.apache.lucene.document.Document |
getDocument(int i) |
java.io.File |
getIndexDirectory() |
LuceneManager.Indexer |
getIndexer() |
long |
getIndexInterval() |
int |
getMaxDocsPerDBSession() |
long |
getRemainingAdditionRequests() |
long |
getRemainingDbUpdateRequests() |
long |
getRemainingDeletionRequests() |
boolean |
indexIsEnabled(java.lang.String dbKey) |
boolean |
isIndexerRunning() |
boolean |
isRebuildingIndex() |
void |
optimizeIndex() |
void |
optimizeIndex(org.apache.log4j.Logger log) |
void |
performCustomDBIndexDeletions(de.innovationgate.webgate.api.WGDatabase db)
Deprecated.
pending feature - F00003426
|
void |
rebuildIndex()
disables the timer task, deletes the index_dir and reinit index
|
void |
rebuildIndex(java.lang.String dbkey)
reindex given dbkey
|
static LuceneManager |
retrieve(WGACore core,
de.innovationgate.wga.config.LuceneManagerConfiguration config) |
org.apache.lucene.analysis.Analyzer |
retrieveAnalyzer(de.innovationgate.webgate.api.WGContent content) |
de.innovationgate.wga.common.beans.LuceneIndexFileRule |
retrieveFileRule(de.innovationgate.webgate.api.WGDatabase db,
java.lang.String filename) |
de.innovationgate.wga.common.beans.LuceneIndexItemRule |
retrieveItemRule(de.innovationgate.webgate.api.WGDatabase db,
java.lang.String itemName) |
de.innovationgate.wga.common.beans.LuceneConfiguration |
retrieveLuceneConfig(java.lang.String dbKey)
get LuceneConfiguration from config file
|
de.innovationgate.webgate.api.WGResultSet |
search(de.innovationgate.webgate.api.WGDatabase db,
java.util.List<java.lang.String> fields,
java.lang.String phrase,
java.util.Map parameters,
WGA wga) |
de.innovationgate.webgate.api.WGResultSet |
search(de.innovationgate.webgate.api.WGDatabase db,
java.lang.String phrase,
java.util.Map parameters,
WGA wga) |
void |
setBooleanQueryMaxClauseCount(int booleanQueryMaxClauseCount) |
void |
setIndexInterval(long indexInterval) |
void |
setMaxDocsPerDBSession(int maxDocsPerDBSession) |
void |
startup()
if wga starts up it notifies lucene by this method
|
void |
updateIndex() |
public static final org.apache.log4j.Logger LOG
public static final java.lang.String VIRTUALMETA_PATH
public static final java.lang.String VIRTUALMETA_PARENT
public static final java.lang.String VIRTUALMETA_AREA
public static final java.lang.String VIRTUALMETA_CONTENTTYPE
public static final java.lang.String VIRTUALMETA_KEY
public static final java.lang.String VIRTUALMETA_DBKEY
public static final java.lang.String VIRTUALMETA_PAGEPUBLISHED
public static final java.lang.String[] VIRTUALMETAS
public static final java.util.List<java.lang.String> TECHNICAL_ITEMS
public static final java.lang.String QUERYOPTION_SEARCHSCOPE
public static final java.lang.String QUERYOPTION_SEARCHDBKEYS
public static final java.lang.String QUERYOPTION_HIGHLIGHT
public static final java.lang.String NATIVE_QUERYOPTION_INCLUDEVIRTUALCONTENT
public static final java.lang.String NATIVE_QUERYOPTION_DOCTYPE
public static final java.lang.String SEARCHSCOPE_DOMAIN
public static final java.lang.String SEARCHSCOPE_WGA
public static final java.lang.String SEARCHSCOPE_DB
public static final java.lang.String SEARCHSCOPE_DB_LIST
public static final java.lang.String INDEXFIELD_DBKEY
public static final java.lang.String INDEXFIELD_CONTENTKEY
public static final java.lang.String INDEXFIELD_ISVIRTUALCONTENT
public static final java.lang.String INDEXFIELD_ALLCONTENT
public static final java.lang.String INDEXFIELD_ALLATTACHMENTS
public static final java.lang.String SYSPROP_DISABLE_AUTO_INDEX_OPTIMIZATION
public static final java.lang.String SYSPROP_USE_CONSTANT_IDF_SIMILARITY
public static final java.lang.String INDEXFIELD_FILENAME
public static final java.lang.String INDEXFIELD_DOCTYPE
public static final java.lang.String DOCTYPE_CONTENT
public static final java.lang.String DOCTYPE_ATTACHMENT
public static final java.lang.String TAGINFO_UNSPECIFICQUERY
public static final java.lang.String TAGINFO_SIMPLIFIEDQUERY
public static final java.lang.String RELATION_PREFIX
public static final java.lang.String RELATIONGROUP_PREFIX
public static final int MAX_CONCURRENT_SEARCHES
public static LuceneManager retrieve(WGACore core, de.innovationgate.wga.config.LuceneManagerConfiguration config) throws java.lang.IllegalArgumentException, java.io.IOException, org.dom4j.DocumentException, de.innovationgate.webgate.api.WGSystemException
java.lang.IllegalArgumentExceptionjava.io.IOExceptionorg.dom4j.DocumentExceptionde.innovationgate.webgate.api.WGSystemExceptionpublic void updateIndex()
throws java.lang.InterruptedException
java.lang.InterruptedExceptionpublic long getIndexInterval()
public void setIndexInterval(long indexInterval)
public void rebuildIndex()
throws java.io.IOException,
org.dom4j.DocumentException
java.io.IOExceptionorg.dom4j.DocumentExceptionpublic void rebuildIndex(java.lang.String dbkey)
dbkey - public void destroy()
public void startup()
public void configurationHasChanged(java.util.Set newConnectedDBKeys)
public de.innovationgate.wga.common.beans.LuceneConfiguration retrieveLuceneConfig(java.lang.String dbKey)
dbKey - DatabaseKeypublic void optimizeIndex()
public void optimizeIndex(org.apache.log4j.Logger log)
public org.apache.lucene.analysis.Analyzer retrieveAnalyzer(de.innovationgate.webgate.api.WGContent content)
throws de.innovationgate.webgate.api.WGAPIException
content - de.innovationgate.webgate.api.WGAPIExceptionpublic void contentCreated(de.innovationgate.webgate.api.WGContentEvent contentEvent)
contentCreated in interface de.innovationgate.webgate.api.WGContentEventListenerpublic boolean contentSaved(de.innovationgate.webgate.api.WGContentEvent contentEvent)
contentSaved in interface de.innovationgate.webgate.api.WGContentEventListenerpublic void contentHasBeenDeleted(de.innovationgate.webgate.api.WGContentEvent event)
contentHasBeenDeleted in interface de.innovationgate.webgate.api.WGContentEventListenerpublic void contentHasBeenSaved(de.innovationgate.webgate.api.WGContentEvent event)
contentHasBeenSaved in interface de.innovationgate.webgate.api.WGContentEventListenerpublic de.innovationgate.webgate.api.WGResultSet search(de.innovationgate.webgate.api.WGDatabase db,
java.lang.String phrase,
java.util.Map parameters,
WGA wga)
throws de.innovationgate.webgate.api.WGQueryException
de.innovationgate.webgate.api.WGQueryExceptionpublic de.innovationgate.webgate.api.WGResultSet search(de.innovationgate.webgate.api.WGDatabase db,
java.util.List<java.lang.String> fields,
java.lang.String phrase,
java.util.Map parameters,
WGA wga)
throws de.innovationgate.webgate.api.WGQueryException
de.innovationgate.webgate.api.WGQueryExceptionpublic void closeOpenedResultSets()
public boolean isRebuildingIndex()
public boolean indexIsEnabled(java.lang.String dbKey)
public int getBooleanQueryMaxClauseCount()
public void setBooleanQueryMaxClauseCount(int booleanQueryMaxClauseCount)
public boolean isIndexerRunning()
public void databaseConnected(de.innovationgate.webgate.api.WGDatabaseEvent event)
databaseConnected in interface de.innovationgate.webgate.api.WGDatabaseConnectListenerpublic void databaseConnectionError(de.innovationgate.webgate.api.WGDatabaseEvent event)
databaseConnectionError in interface de.innovationgate.webgate.api.WGDatabaseConnectListenerpublic int getMaxDocsPerDBSession()
public void setMaxDocsPerDBSession(int maxDocsPerDBSession)
public org.apache.lucene.search.highlight.Highlighter createHighlighter(java.lang.String itemOrMeta,
org.apache.lucene.search.Query query,
org.apache.lucene.search.highlight.Formatter formatter)
public org.apache.lucene.analysis.TokenStream createTokenStream(java.lang.String text,
de.innovationgate.webgate.api.WGContent content)
throws de.innovationgate.webgate.api.WGAPIException
de.innovationgate.webgate.api.WGAPIExceptionpublic org.apache.lucene.analysis.TokenStream createTokenStream(java.io.Reader reader,
de.innovationgate.webgate.api.WGContent content)
throws de.innovationgate.webgate.api.WGAPIException
de.innovationgate.webgate.api.WGAPIExceptionpublic void performCustomDBIndexDeletions(de.innovationgate.webgate.api.WGDatabase db)
throws java.io.IOException,
de.innovationgate.webgate.api.WGIllegalArgumentException,
java.lang.InterruptedException
db - java.io.IOExceptionde.innovationgate.webgate.api.WGIllegalArgumentExceptionjava.lang.InterruptedExceptionpublic java.io.File getIndexDirectory()
public void contentHasBeenMoved(de.innovationgate.webgate.api.WGContentEvent event)
contentHasBeenMoved in interface de.innovationgate.webgate.api.WGContentEventListenerpublic org.apache.lucene.document.Document getDocument(int i)
throws org.apache.lucene.index.CorruptIndexException,
java.io.IOException,
java.lang.InterruptedException
org.apache.lucene.index.CorruptIndexExceptionjava.io.IOExceptionjava.lang.InterruptedExceptionpublic org.apache.lucene.search.Explanation explain(org.apache.lucene.search.Query query,
int doc)
throws org.apache.lucene.index.CorruptIndexException,
java.io.IOException,
java.lang.InterruptedException
org.apache.lucene.index.CorruptIndexExceptionjava.io.IOExceptionjava.lang.InterruptedExceptionpublic void contentStatusChanged(de.innovationgate.webgate.api.WGContentEvent event)
contentStatusChanged in interface de.innovationgate.webgate.api.WGContentEventListenerpublic java.util.Map<java.lang.String,java.util.Queue<de.innovationgate.wgpublisher.lucene.LuceneManager.IndexingRequest>> getDeletionRequestsMap()
public java.util.Map<java.lang.String,java.util.Queue<de.innovationgate.wgpublisher.lucene.LuceneManager.IndexingRequest>> getAdditionRequestsMap()
public de.innovationgate.wga.common.beans.LuceneIndexFileRule retrieveFileRule(de.innovationgate.webgate.api.WGDatabase db,
java.lang.String filename)
public de.innovationgate.wga.common.beans.LuceneIndexItemRule retrieveItemRule(de.innovationgate.webgate.api.WGDatabase db,
java.lang.String itemName)
public long getRemainingAdditionRequests()
public long getRemainingDeletionRequests()
public long getRemainingDbUpdateRequests()
public LuceneManager.Indexer getIndexer()
public de.innovationgate.webgate.api.WGDatabaseRevision getDatabaseUpdateStatus(java.lang.String dbKey)