|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.opencms.search.CmsSearchManager
Implements the general management and configuration of the search and indexing facilities in OpenCms.
Nested Class Summary | |
static class |
CmsSearchManager.CmsSearchForceUnlockMode
Enumeration class for force unlock types. |
Field Summary | |
static int |
DEFAULT_EXCERPT_LENGTH
The default value used for generating search result exerpts (1024 chars). |
static float |
DEFAULT_EXTRACTION_CACHE_MAX_AGE
The default value used for keeping the extraction results in the cache (672 hours = 4 weeks). |
static int |
DEFAULT_TIMEOUT
The default timeout value used for generating a document for the search index (60000 msec = 1 min). |
static java.lang.String |
JOB_PARAM_INDEXLIST
Scheduler parameter: Update only a specified list of indexes. |
static java.lang.String |
JOB_PARAM_WRITELOG
Scheduler parameter: Write the output of the update to the logfile. |
Constructor Summary | |
CmsSearchManager()
Default constructor when called as cron job. |
Method Summary | |
void |
addAnalyzer(CmsSearchAnalyzer analyzer)
Adds an analyzer. |
void |
addDocumentTypeConfig(CmsSearchDocumentType documentType)
Adds a document type. |
void |
addFieldConfiguration(CmsSearchFieldConfiguration fieldConfiguration)
Adds a search field configuration to the search manager. |
void |
addSearchIndex(CmsSearchIndex searchIndex)
Adds a search index to the configuration. |
void |
addSearchIndexSource(CmsSearchIndexSource searchIndexSource)
Adds a search index source configuration. |
void |
cmsEvent(CmsEvent event)
Implements the event listener of this class. |
protected void |
forceIndexUnlock(CmsSearchIndex index,
I_CmsReport report,
boolean mode)
Proceed the unlocking of the given index depending on the setting of m_forceUnlockMode and the given mode. |
protected org.apache.lucene.analysis.Analyzer |
getAnalyzer(java.util.Locale locale)
Returns an analyzer for the given language. |
java.util.Map |
getAnalyzers()
Returns an unmodifiable view of the map that contains the CmsSearchAnalyzer list. |
CmsSearchAnalyzer |
getCmsSearchAnalyzer(java.util.Locale locale)
Returns the search analyzer for the given locale. |
java.lang.String |
getDirectory()
Returns the name of the directory below WEB-INF/ where the search indexes are stored. |
protected I_CmsDocumentFactory |
getDocumentFactory(CmsResource resource)
Returns a lucene document factory for given resource. |
CmsSearchDocumentType |
getDocumentTypeConfig(java.lang.String name)
Returns a document type config. |
java.util.List |
getDocumentTypeConfigs()
Returns an unmodifiable view (read-only) of the DocumentTypeConfigs Map. |
protected java.util.List |
getDocumentTypes()
Returns the set of names of all configured documenttypes. |
float |
getExtractionCacheMaxAge()
Returns the maximum age a text extraction result is kept in the cache (in hours). |
CmsSearchFieldConfiguration |
getFieldConfiguration(java.lang.String name)
Returns the search field configuration with the given name. |
java.util.List |
getFieldConfigurations()
Returns the unmodifieable List of configured CmsSearchFieldConfiguration entries. |
CmsSearchManager.CmsSearchForceUnlockMode |
getForceunlock()
Returns the force unlock mode during indexing. |
I_CmsTermHighlighter |
getHighlighter()
Returns the highlighter. |
CmsSearchIndex |
getIndex(java.lang.String indexName)
Returns the index belonging to the passed name. |
int |
getIndexLockMaxWaitSeconds()
Returns the seconds to wait for an index lock during an update operation. |
java.util.List |
getIndexNames()
Returns the names of all configured indexes. |
CmsSearchIndexSource |
getIndexSource(java.lang.String sourceName)
Returns a search index source for a specified source name. |
int |
getMaxExcerptLength()
Returns the max. excerpt length. |
java.util.List |
getSearchIndexes()
Returns an unmodifiable list of all configured instances. |
java.util.Map |
getSearchIndexSources()
Returns an unmodifiable view (read-only) of the SearchIndexSources Map. |
long |
getTimeout()
Returns the timeout to abandon threads indexing a resource. |
protected void |
initAvailableDocumentTypes()
Initializes the available Cms resource types to be indexed. |
void |
initialize(CmsObject cms)
Initializes the search manager. |
void |
initializeIndexes()
Initializes all configured document types and search indexes. |
protected void |
initSearchIndexes()
Initializes the configured search indexes. |
java.lang.String |
launch(CmsObject cms,
java.util.Map parameters)
Updates the indexes from as a scheduled job. |
void |
rebuildAllIndexes(I_CmsReport report)
Rebuilds (if required creates) all configured indexes. |
void |
rebuildIndex(java.lang.String indexName,
I_CmsReport report)
Rebuilds (if required creates) the index with the given name. |
void |
rebuildIndexes(java.util.List indexNames,
I_CmsReport report)
Rebuilds (if required creates) the List of indexes with the given name. |
boolean |
removeSearchFieldConfiguration(CmsSearchFieldConfiguration fieldConfiguration)
Removes this fieldconfiguration from the OpenCms configuration (if it is not used any more). |
boolean |
removeSearchFieldConfigurationField(CmsSearchFieldConfiguration fieldConfiguration,
CmsSearchField field)
Removes a search field from the field configuration. |
boolean |
removeSearchFieldMapping(CmsSearchField field,
CmsSearchFieldMapping mapping)
Removes a search field mapping from the given field. |
void |
removeSearchIndex(CmsSearchIndex searchIndex)
Removes a search index from the configuration. |
void |
removeSearchIndexes(java.util.List indexNames)
Removes all indexes included in the given list (which must contain the name of an index to remove). |
boolean |
removeSearchIndexSource(CmsSearchIndexSource indexsource)
Removes this indexsource from the OpenCms configuration (if it is not used any more). |
void |
setDirectory(java.lang.String value)
Sets the name of the directory below WEB-INF/ where the search indexes are stored. |
void |
setExtractionCacheMaxAge(float extractionCacheMaxAge)
Sets the maximum age a text extraction result is kept in the cache (in hours). |
void |
setExtractionCacheMaxAge(java.lang.String extractionCacheMaxAge)
Sets the maximum age a text extraction result is kept in the cache (in hours) as a String. |
void |
setForceunlock(java.lang.String value)
Sets the unlock mode during indexing. |
void |
setHighlighter(java.lang.String highlighter)
Sets the highlighter. |
void |
setIndexLockMaxWaitSeconds(int value)
Sets the seconds to wait for an index lock during an update operation. |
void |
setMaxExcerptLength(int maxExcerptLength)
Sets the max. excerpt length. |
void |
setMaxExcerptLength(java.lang.String maxExcerptLength)
Sets the max. excerpt length as a String. |
void |
setTimeout(long value)
Sets the timeout to abandon threads indexing a resource. |
void |
setTimeout(java.lang.String value)
Sets the timeout to abandon threads indexing a resource as a String. |
protected void |
updateAllIndexes(CmsObject adminCms,
CmsUUID publishHistoryId,
I_CmsReport report)
Incrementally updates all indexes that have their rebuild mode set to "auto"
after resources have been published. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int DEFAULT_EXCERPT_LENGTH
public static final float DEFAULT_EXTRACTION_CACHE_MAX_AGE
public static final int DEFAULT_TIMEOUT
public static final java.lang.String JOB_PARAM_INDEXLIST
public static final java.lang.String JOB_PARAM_WRITELOG
Constructor Detail |
public CmsSearchManager()
Method Detail |
public void addAnalyzer(CmsSearchAnalyzer analyzer)
analyzer
- an analyzerpublic void addDocumentTypeConfig(CmsSearchDocumentType documentType)
documentType
- a document typepublic void addFieldConfiguration(CmsSearchFieldConfiguration fieldConfiguration)
fieldConfiguration
- the search field configuration to addpublic void addSearchIndex(CmsSearchIndex searchIndex)
searchIndex
- the search index to addpublic void addSearchIndexSource(CmsSearchIndexSource searchIndexSource)
searchIndexSource
- a search index source configurationpublic void cmsEvent(CmsEvent event)
cmsEvent
in interface I_CmsEventListener
event
- CmsEvent that has occurredI_CmsEventListener.cmsEvent(org.opencms.main.CmsEvent)
public java.util.Map getAnalyzers()
CmsSearchAnalyzer
list.
The keys in the map are Locale
objects, and the values are CmsSearchAnalyzer
objects.
public CmsSearchAnalyzer getCmsSearchAnalyzer(java.util.Locale locale)
locale
- the locale to get the analyzer for
public java.lang.String getDirectory()
public CmsSearchDocumentType getDocumentTypeConfig(java.lang.String name)
name
- the name of the document type config
public java.util.List getDocumentTypeConfigs()
public float getExtractionCacheMaxAge()
public CmsSearchFieldConfiguration getFieldConfiguration(java.lang.String name)
In case no configuration is available with the given name, null
is returned.
name
- the name to get the search field configuration for
public java.util.List getFieldConfigurations()
CmsSearchFieldConfiguration
entries.
CmsSearchFieldConfiguration
entriespublic CmsSearchManager.CmsSearchForceUnlockMode getForceunlock()
public I_CmsTermHighlighter getHighlighter()
public CmsSearchIndex getIndex(java.lang.String indexName)
The index must exist already.
indexName
- then name of the index
public int getIndexLockMaxWaitSeconds()
public java.util.List getIndexNames()
public CmsSearchIndexSource getIndexSource(java.lang.String sourceName)
sourceName
- the name of the index source
public int getMaxExcerptLength()
public java.util.List getSearchIndexes()
CmsSearchIndex
instances.
CmsSearchIndex
instancespublic java.util.Map getSearchIndexSources()
public long getTimeout()
public void initialize(CmsObject cms) throws CmsRoleViolationException
cms
- the cms object
CmsRoleViolationException
- in case the given opencms object does not have CmsRole.WORKPLACE_MANAGER
permissionspublic void initializeIndexes()
This methods needs to be called if after a change in the index configuration has been made.
public java.lang.String launch(CmsObject cms, java.util.Map parameters) throws java.lang.Exception
launch
in interface I_CmsScheduledJob
cms
- the OpenCms user context to use when reading resources from the VFSparameters
- the parameters for the scheduled job
java.lang.Exception
- if something goes wrongI_CmsScheduledJob.launch(org.opencms.file.CmsObject, java.util.Map)
public void rebuildAllIndexes(I_CmsReport report) throws CmsException
report
- the report object to write messages (or null
)
CmsException
- if something goes wrongpublic void rebuildIndex(java.lang.String indexName, I_CmsReport report) throws CmsException
indexName
- the name of the index to rebuildreport
- the report object to write messages (or null
)
CmsException
- if something goes wrongpublic void rebuildIndexes(java.util.List indexNames, I_CmsReport report) throws CmsException
indexNames
- the names (String) of the index to rebuildreport
- the report object to write messages (or null
)
CmsException
- if something goes wrongpublic boolean removeSearchFieldConfiguration(CmsSearchFieldConfiguration fieldConfiguration) throws CmsIllegalStateException
fieldConfiguration
- the fieldconfiguration to remove from the configuration
CmsIllegalStateException
- if the given field configuration is still used by at least one
CmsSearchIndex
.public boolean removeSearchFieldConfigurationField(CmsSearchFieldConfiguration fieldConfiguration, CmsSearchField field) throws CmsIllegalStateException
fieldConfiguration
- the field configurationfield
- field to remove from the field configuration
CmsIllegalStateException
- if the given field is the last field inside the given field configuration.public boolean removeSearchFieldMapping(CmsSearchField field, CmsSearchFieldMapping mapping) throws CmsIllegalStateException
field
- the fieldmapping
- mapping to remove from the field
CmsIllegalStateException
- if the given mapping is the last mapping inside the given field.public void removeSearchIndex(CmsSearchIndex searchIndex)
searchIndex
- the search index to removepublic void removeSearchIndexes(java.util.List indexNames)
indexNames
- the names of the index to removepublic boolean removeSearchIndexSource(CmsSearchIndexSource indexsource) throws CmsIllegalStateException
indexsource
- the indexsource to remove from the configuration
CmsIllegalStateException
- if the given indexsource is still used by at least one
CmsSearchIndex
.public void setDirectory(java.lang.String value)
value
- the name of the directory below WEB-INF/ where the search indexes are storedpublic void setExtractionCacheMaxAge(float extractionCacheMaxAge)
extractionCacheMaxAge
- the maximum age for a text extraction result to setpublic void setExtractionCacheMaxAge(java.lang.String extractionCacheMaxAge)
extractionCacheMaxAge
- the maximum age for a text extraction result to setpublic void setForceunlock(java.lang.String value)
value
- the valuepublic void setHighlighter(java.lang.String highlighter)
A highlighter is a class implementing org.opencms.search.documents.I_TermHighlighter.
highlighter
- the package/class name of the highlighterpublic void setIndexLockMaxWaitSeconds(int value)
value
- the seconds to wait for an index lock during an update operationpublic void setMaxExcerptLength(int maxExcerptLength)
maxExcerptLength
- the max. excerpt length to setpublic void setMaxExcerptLength(java.lang.String maxExcerptLength)
maxExcerptLength
- the max. excerpt length to setpublic void setTimeout(long value)
value
- the timeout in millisecondspublic void setTimeout(java.lang.String value)
value
- the timeout in millisecondsprotected void forceIndexUnlock(CmsSearchIndex index, I_CmsReport report, boolean mode) throws CmsIndexException
m_forceUnlockMode
and the given mode.
index
- the index to check the lock forreport
- the report to write error messages onmode
- the mode of the index process if true the index is updated otherwise it is rebuild completely
CmsIndexException
- if unlocking of the index is impossible for some reasonsprotected org.apache.lucene.analysis.Analyzer getAnalyzer(java.util.Locale locale) throws CmsIndexException
The analyzer is selected according to the analyzer configuration.
locale
- the locale to get the analyzer for
CmsIndexException
- if something goes wrongprotected I_CmsDocumentFactory getDocumentFactory(CmsResource resource)
The type of the document factory is selected by the type of the resource
and the MIME type of the resource content, according to the configuration in opencms-search.xml
.
resource
- a cms resource
protected java.util.List getDocumentTypes()
protected void initAvailableDocumentTypes()
A map stores document factories keyed by a string representing a colon separated list of Cms resource types and/or mimetypes.
The keys of this map are used to trigger a document factory to convert a Cms resource into a Lucene index document.
A document factory is a class implementing the interface
I_CmsDocumentFactory
.
protected void initSearchIndexes()
This initializes also the list of Cms resources types to be indexed by an index source.
protected void updateAllIndexes(CmsObject adminCms, CmsUUID publishHistoryId, I_CmsReport report)
"auto"
after resources have been published.
adminCms
- an OpenCms user context with Admin permissionspublishHistoryId
- the history ID of the published projectreport
- the report to write the output to
|
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |