Package org.opencms.search
Class CmsLuceneDocument
- java.lang.Object
-
- org.opencms.search.CmsLuceneDocument
-
- All Implemented Interfaces:
I_CmsSearchDocument
public class CmsLuceneDocument extends java.lang.Object implements I_CmsSearchDocument
A Lucene search document implementation.
-
-
Field Summary
Fields Modifier and Type Field Description static org.apache.lucene.document.FieldType
NOT_STORED_ANALYSED_TYPE
Type for a stored-only field.static org.apache.lucene.document.FieldType
STORED_ANALYSED_TYPE
Type for a stored-and analyzed fields.static org.apache.lucene.document.FieldType
STORED_NOT_ANALYSED_TYPE
Type for a stored-only field.-
Fields inherited from interface org.opencms.search.I_CmsSearchDocument
SEARCH_PRIORITY_HIGH_VALUE, SEARCH_PRIORITY_LOW_VALUE, SEARCH_PRIORITY_MAX_VALUE, SEARCH_PRIORITY_NORMAL_VALUE, VFS_DOCUMENT_KEY_PREFIX
-
-
Constructor Summary
Constructors Constructor Description CmsLuceneDocument(org.apache.lucene.document.Document doc)
Public constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCategoryField(java.util.List<CmsCategory> categories)
Adds the list of the given categories to this document.void
addContentField(byte[] data)
Adds the given content byte array to this document.void
addContentLocales(java.util.Collection<java.util.Locale> locales)
Adds the locales of the content to this document.void
addDateField(java.lang.String name, long date, boolean analyzed)
Puts the given date into the field with the given name.void
addFileSizeField(int length)
Adds the given file size as field to this document.void
addPathField(java.lang.String rootPath)
Puts the given path into this document.void
addResourceLocales(java.util.Collection<java.util.Locale> locales)
Adds the locales of the resource to this document.void
addRootPathField(java.lang.String rootPath)
Puts the given root path into its default field.void
addSearchField(CmsSearchField field, java.lang.String value)
Adds a dynamic search field to the index.void
addSuffixField(java.lang.String suffix)
Adds the suffix field to the document.void
addTypeField(java.lang.String typeName)
Adds the resource type to this document.byte[]
getContentBlob()
Returns the content blob of this document.static java.lang.String
getDateTerms(long date)
Generate a list of date terms for the optimized date range search.java.lang.Object
getDocument()
Returns the concrete document as Object to be cast if necessary.java.util.List<java.lang.String>
getFieldNames()
Returns all field names of this document.java.util.Date
getFieldValueAsDate(java.lang.String fieldName)
Tries to return the value of the field for the given name as Date,null
if the field is empty or if the field is not of the type date.java.lang.String
getFieldValueAsString(java.lang.String fieldName)
Returns the value of the field for the given name as String.java.util.List<java.lang.String>
getMultivaluedFieldAsStringList(java.lang.String fieldName)
Returns the values of a multi-valued field as list of strings.java.lang.String
getPath()
Returns the root path of the referenced VFS resource of this document.float
getScore()
Returns the score for this document.java.lang.String
getType()
Returns the resource type of the referenced VFS resource of this document.void
setScore(float score)
Sets the score for this document.
-
-
-
Field Detail
-
NOT_STORED_ANALYSED_TYPE
public static final org.apache.lucene.document.FieldType NOT_STORED_ANALYSED_TYPE
Type for a stored-only field.
-
STORED_ANALYSED_TYPE
public static final org.apache.lucene.document.FieldType STORED_ANALYSED_TYPE
Type for a stored-and analyzed fields.
-
STORED_NOT_ANALYSED_TYPE
public static final org.apache.lucene.document.FieldType STORED_NOT_ANALYSED_TYPE
Type for a stored-only field.
-
-
Constructor Detail
-
CmsLuceneDocument
public CmsLuceneDocument(org.apache.lucene.document.Document doc)
Public constructor.- Parameters:
doc
- the Lucene document
-
-
Method Detail
-
getDateTerms
public static java.lang.String getDateTerms(long date)
Generate a list of date terms for the optimized date range search.- Parameters:
date
- the date for get the date terms for- Returns:
- a list of date terms for the optimized date range search
- See Also:
CmsSearchIndex.getDateRangeSpan(long, long)
-
addCategoryField
public void addCategoryField(java.util.List<CmsCategory> categories)
Description copied from interface:I_CmsSearchDocument
Adds the list of the given categories to this document.- Specified by:
addCategoryField
in interfaceI_CmsSearchDocument
- Parameters:
categories
- the categories to add- See Also:
I_CmsSearchDocument.addCategoryField(java.util.List)
-
addContentField
public void addContentField(byte[] data)
Description copied from interface:I_CmsSearchDocument
Adds the given content byte array to this document.- Specified by:
addContentField
in interfaceI_CmsSearchDocument
- Parameters:
data
- the content to add- See Also:
I_CmsSearchDocument.addContentField(byte[])
-
addContentLocales
public void addContentLocales(java.util.Collection<java.util.Locale> locales)
Description copied from interface:I_CmsSearchDocument
Adds the locales of the content to this document.- Specified by:
addContentLocales
in interfaceI_CmsSearchDocument
- Parameters:
locales
- the locales of the content- See Also:
I_CmsSearchDocument.addContentLocales(java.util.Collection)
-
addDateField
public void addDateField(java.lang.String name, long date, boolean analyzed)
Description copied from interface:I_CmsSearchDocument
Puts the given date into the field with the given name.- Specified by:
addDateField
in interfaceI_CmsSearchDocument
- Parameters:
name
- the name to put the date indate
- the date to pu into the fieldanalyzed
-true
if the inserted value should be analyzable- See Also:
I_CmsSearchDocument.addDateField(java.lang.String, long, boolean)
-
addFileSizeField
public void addFileSizeField(int length)
Description copied from interface:I_CmsSearchDocument
Adds the given file size as field to this document.- Specified by:
addFileSizeField
in interfaceI_CmsSearchDocument
- Parameters:
length
- the length- See Also:
I_CmsSearchDocument.addFileSizeField(int)
-
addPathField
public void addPathField(java.lang.String rootPath)
Description copied from interface:I_CmsSearchDocument
Puts the given path into this document.- Specified by:
addPathField
in interfaceI_CmsSearchDocument
- Parameters:
rootPath
- the given path into this document- See Also:
I_CmsSearchDocument.addPathField(java.lang.String)
-
addResourceLocales
public void addResourceLocales(java.util.Collection<java.util.Locale> locales)
Description copied from interface:I_CmsSearchDocument
Adds the locales of the resource to this document.- Specified by:
addResourceLocales
in interfaceI_CmsSearchDocument
- Parameters:
locales
- the locales of the resource- See Also:
I_CmsSearchDocument.addResourceLocales(java.util.Collection)
-
addRootPathField
public void addRootPathField(java.lang.String rootPath)
Description copied from interface:I_CmsSearchDocument
Puts the given root path into its default field.- Specified by:
addRootPathField
in interfaceI_CmsSearchDocument
- Parameters:
rootPath
- the root path to put into the field- See Also:
I_CmsSearchDocument.addRootPathField(java.lang.String)
-
addSearchField
public void addSearchField(CmsSearchField field, java.lang.String value)
Description copied from interface:I_CmsSearchDocument
Adds a dynamic search field to the index.- Specified by:
addSearchField
in interfaceI_CmsSearchDocument
- Parameters:
field
- the fieldvalue
- the value- See Also:
I_CmsSearchDocument.addSearchField(org.opencms.search.fields.CmsSearchField, java.lang.String)
-
addSuffixField
public void addSuffixField(java.lang.String suffix)
Description copied from interface:I_CmsSearchDocument
Adds the suffix field to the document. This field should contain the resource suffix.Example
'html' for a file named 'article.html'
- Specified by:
addSuffixField
in interfaceI_CmsSearchDocument
- Parameters:
suffix
- the suffix to add- See Also:
I_CmsSearchDocument.addSuffixField(java.lang.String)
-
addTypeField
public void addTypeField(java.lang.String typeName)
Description copied from interface:I_CmsSearchDocument
Adds the resource type to this document.- Specified by:
addTypeField
in interfaceI_CmsSearchDocument
- Parameters:
typeName
- the resource type name.- See Also:
I_CmsSearchDocument.addTypeField(java.lang.String)
-
getContentBlob
public byte[] getContentBlob()
Description copied from interface:I_CmsSearchDocument
Returns the content blob of this document.- Specified by:
getContentBlob
in interfaceI_CmsSearchDocument
- Returns:
- the content blob
- See Also:
I_CmsSearchDocument.getContentBlob()
-
getDocument
public java.lang.Object getDocument()
Description copied from interface:I_CmsSearchDocument
Returns the concrete document as Object to be cast if necessary.- Specified by:
getDocument
in interfaceI_CmsSearchDocument
- Returns:
- the document as Object
- See Also:
I_CmsSearchDocument.getDocument()
-
getFieldNames
public java.util.List<java.lang.String> getFieldNames()
Description copied from interface:I_CmsSearchDocument
Returns all field names of this document.- Specified by:
getFieldNames
in interfaceI_CmsSearchDocument
- Returns:
- the field names
- See Also:
I_CmsSearchDocument.getFieldNames()
-
getFieldValueAsDate
public java.util.Date getFieldValueAsDate(java.lang.String fieldName)
Description copied from interface:I_CmsSearchDocument
Tries to return the value of the field for the given name as Date,null
if the field is empty or if the field is not of the type date.- Specified by:
getFieldValueAsDate
in interfaceI_CmsSearchDocument
- Parameters:
fieldName
- the name of the field to get the Date value for- Returns:
- the date or
null
- See Also:
I_CmsSearchDocument.getFieldValueAsDate(java.lang.String)
-
getFieldValueAsString
public java.lang.String getFieldValueAsString(java.lang.String fieldName)
Description copied from interface:I_CmsSearchDocument
Returns the value of the field for the given name as String.- Specified by:
getFieldValueAsString
in interfaceI_CmsSearchDocument
- Parameters:
fieldName
- the name of the field to get the String value for- Returns:
- the String value or
null
if empty - See Also:
I_CmsSearchDocument.getFieldValueAsString(java.lang.String)
-
getMultivaluedFieldAsStringList
public java.util.List<java.lang.String> getMultivaluedFieldAsStringList(java.lang.String fieldName)
Description copied from interface:I_CmsSearchDocument
Returns the values of a multi-valued field as list of strings.- Specified by:
getMultivaluedFieldAsStringList
in interfaceI_CmsSearchDocument
- Parameters:
fieldName
- the name of the multivalued field to get the values from.- Returns:
- the values of a multi-valued field as list of strings.
- See Also:
I_CmsSearchDocument.getMultivaluedFieldAsStringList(java.lang.String)
-
getPath
public java.lang.String getPath()
Description copied from interface:I_CmsSearchDocument
Returns the root path of the referenced VFS resource of this document.- Specified by:
getPath
in interfaceI_CmsSearchDocument
- Returns:
- the root path
- See Also:
I_CmsSearchDocument.getPath()
-
getScore
public float getScore()
Description copied from interface:I_CmsSearchDocument
Returns the score for this document.- Specified by:
getScore
in interfaceI_CmsSearchDocument
- Returns:
- the score
- See Also:
I_CmsSearchDocument.getScore()
-
getType
public java.lang.String getType()
Description copied from interface:I_CmsSearchDocument
Returns the resource type of the referenced VFS resource of this document.- Specified by:
getType
in interfaceI_CmsSearchDocument
- Returns:
- the type
- See Also:
I_CmsSearchDocument.getType()
-
setScore
public void setScore(float score)
Description copied from interface:I_CmsSearchDocument
Sets the score for this document.- Specified by:
setScore
in interfaceI_CmsSearchDocument
- Parameters:
score
- the score- See Also:
I_CmsSearchDocument.setScore(float)
-
-