org.opencms.search.documents
Interface I_CmsDocumentFactory

All Superinterfaces:
I_CmsSearchExtractor
All Known Implementing Classes:
A_CmsVfsDocument, CmsDocumentGeneric, CmsDocumentHtml, CmsDocumentMsExcel, CmsDocumentMsPowerPoint, CmsDocumentMsWord, CmsDocumentOpenOffice, CmsDocumentPdf, CmsDocumentPlainText, CmsDocumentRtf, CmsDocumentXmlContent, CmsDocumentXmlPage

public interface I_CmsDocumentFactory
extends I_CmsSearchExtractor

Used to create index Lucene Documents for OpenCms resources, controls the text extraction algorithm used for a specific OpenCms resource type / MIME type combination.

The configuration of the search index is defined in opencms-search.xml. There you can associate a combintion of OpenCms resource types and MIME types to an instance of this factory. This rather complex configuration is required because only the combination of OpenCms resource type and MIME type can decide what to use for search indexing. For example, if the OpenCms resource type is plain, the extraction algorithm for MIME types .html and .txt must be different. On the other hand, the MIME type .html in OpenCms can be almost any resource type, like xmlpage, xmlcontent or even jsp.

Since:
6.0.0
Version:
$Revision: 1.31 $
Author:
Carsten Weinholz, Thomas Weckert, Alexander Kandzior

Method Summary
 org.apache.lucene.document.Document createDocument(CmsObject cms, CmsResource resource, CmsSearchIndex index)
          Creates the Lucene Document for the given VFS resource and the given search index.
 CmsExtractionResultCache getCache()
          Returns the disk based cache used to store the raw extraction results.
 java.util.List<java.lang.String> getDocumentKeys(java.util.List<java.lang.String> resourceTypes, java.util.List<java.lang.String> mimeTypes)
          Returns the list of accepted keys for the resource types that can be indexed using this document factory.
 java.lang.String getName()
          Returns the name of this document type factory.
 boolean isLocaleDependend()
          Returns true if this document factory is locale depended.
 boolean isUsingCache()
          Returns true if result caching is supported for this factory.
 void setCache(CmsExtractionResultCache cache)
          Sets the disk based cache used to store the raw extraction results.
 
Methods inherited from interface org.opencms.search.documents.I_CmsSearchExtractor
extractContent
 

Method Detail

createDocument

org.apache.lucene.document.Document createDocument(CmsObject cms,
                                                   CmsResource resource,
                                                   CmsSearchIndex index)
                                                   throws CmsException
Creates the Lucene Document for the given VFS resource and the given search index.

This triggers the indexing process for the given VFS resource according to the configuration of the provided index.

The provided index resource contains the basic contents to index. The provided search index contains the configuration what to index, such as the locale and possible special field mappings.

Parameters:
cms - the OpenCms user context used to access the OpenCms VFS
resource - the search index resource to create the Lucene document from
index - the search index to create the Document for
Returns:
the Lucene Document for the given index resource and the given search index
Throws:
CmsException - if something goes wrong
See Also:
CmsSearchFieldConfiguration.createDocument(CmsObject, CmsResource, CmsSearchIndex, org.opencms.search.extractors.I_CmsExtractionResult)

getCache

CmsExtractionResultCache getCache()
Returns the disk based cache used to store the raw extraction results.

In case null is returned, then result caching is not supported for this factory.

Returns:
the disk based cache used to store the raw extraction results

getDocumentKeys

java.util.List<java.lang.String> getDocumentKeys(java.util.List<java.lang.String> resourceTypes,
                                                 java.util.List<java.lang.String> mimeTypes)
                                                 throws CmsException
Returns the list of accepted keys for the resource types that can be indexed using this document factory.

The result List contains String objects. This String is later matched against A_CmsVfsDocument.getDocumentKey(String, String) to find the corrospondig I_CmsDocumentFactory for a resource to index.

The list of accepted resource types may contain a catch-all entry "*"; in this case, a list for all possible resource types is returned, calculated by a logic depending on the document handler class.

Parameters:
resourceTypes - list of accepted resource types
mimeTypes - list of accepted mime types
Returns:
the list of accepted keys for the resource types that can be indexed using this document factory (String objects)
Throws:
CmsException - if something goes wrong

getName

java.lang.String getName()
Returns the name of this document type factory.

Returns:
the name of this document type factory

isLocaleDependend

boolean isLocaleDependend()
Returns true if this document factory is locale depended.

Returns:
true if this document factory is locale depended

isUsingCache

boolean isUsingCache()
Returns true if result caching is supported for this factory.

Returns:
true if result caching is supported for this factory

setCache

void setCache(CmsExtractionResultCache cache)
Sets the disk based cache used to store the raw extraction results.

This should only be used for factories where isUsingCache() returns true.

Parameters:
cache - the disk based cache used to store the raw extraction results