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.IllegalArgumentException
java.io.IOException
org.dom4j.DocumentException
de.innovationgate.webgate.api.WGSystemException
public void updateIndex() throws java.lang.InterruptedException
java.lang.InterruptedException
public long getIndexInterval()
public void setIndexInterval(long indexInterval)
public void rebuildIndex() throws java.io.IOException, org.dom4j.DocumentException
java.io.IOException
org.dom4j.DocumentException
public 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.WGAPIException
public void contentCreated(de.innovationgate.webgate.api.WGContentEvent contentEvent)
contentCreated
in interface de.innovationgate.webgate.api.WGContentEventListener
public boolean contentSaved(de.innovationgate.webgate.api.WGContentEvent contentEvent)
contentSaved
in interface de.innovationgate.webgate.api.WGContentEventListener
public void contentHasBeenDeleted(de.innovationgate.webgate.api.WGContentEvent event)
contentHasBeenDeleted
in interface de.innovationgate.webgate.api.WGContentEventListener
public void contentHasBeenSaved(de.innovationgate.webgate.api.WGContentEvent event)
contentHasBeenSaved
in interface de.innovationgate.webgate.api.WGContentEventListener
public 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.WGQueryException
public 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.WGQueryException
public 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.WGDatabaseConnectListener
public void databaseConnectionError(de.innovationgate.webgate.api.WGDatabaseEvent event)
databaseConnectionError
in interface de.innovationgate.webgate.api.WGDatabaseConnectListener
public 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.WGAPIException
public 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.WGAPIException
public void performCustomDBIndexDeletions(de.innovationgate.webgate.api.WGDatabase db) throws java.io.IOException, de.innovationgate.webgate.api.WGIllegalArgumentException, java.lang.InterruptedException
db
- java.io.IOException
de.innovationgate.webgate.api.WGIllegalArgumentException
java.lang.InterruptedException
public java.io.File getIndexDirectory()
public void contentHasBeenMoved(de.innovationgate.webgate.api.WGContentEvent event)
contentHasBeenMoved
in interface de.innovationgate.webgate.api.WGContentEventListener
public org.apache.lucene.document.Document getDocument(int i) throws org.apache.lucene.index.CorruptIndexException, java.io.IOException, java.lang.InterruptedException
org.apache.lucene.index.CorruptIndexException
java.io.IOException
java.lang.InterruptedException
public 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.CorruptIndexException
java.io.IOException
java.lang.InterruptedException
public void contentStatusChanged(de.innovationgate.webgate.api.WGContentEvent event)
contentStatusChanged
in interface de.innovationgate.webgate.api.WGContentEventListener
public 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)