public class LuceneCategorySearchEngine extends LuceneDataSearchEngine implements CategorySearchEngine, JcmsConstants
CategorySearchEngine
is reponsible for the indexing and searching of JCMS
content using lucene. WEB-INF/data/lucene/CategoriesIndices/<lang>/
.Document
per indexed Category
."search-engine.optimize-schedule"
(jdring's AlarmEntry cron-like format)Analyzer getAnalyzer(String lang);
- Since:
- jcms-5.5.0
- Version:
- $Revision: 49040 $
-
-
Field Summary
Fields
Modifier and Type
Field and Description
static java.lang.String
ALLFIELDS_FIELD
protected static java.lang.String
CATEGORY_INDEX_DIRECTORY
static java.lang.String
DESCRIPTION_FIELD
static java.lang.String
MATCHED_CATEGORIES_ATTRIBUTE
This variable is the attribute's key used by the LuceneCategorySearchEngine to
set the matched categories HashSet in the QueryResultSet Attribute.
static java.lang.String
NAME_FIELD
static java.lang.String
REVISION
static java.lang.String
SYNONYMS_FIELD
-
Fields inherited from class com.jalios.jcms.search.LuceneDataSearchEngine
alarmMgr, channel, directoryName, ID_FIELD, indexAccessLock, INDEXING_DATE_EXTRAINFO, INDEXING_DATE_FIELD, langList, langToIndexDirMap, MAX_BUFFERED_DOCS, MAX_FIELD_LENGTH, MAX_MERGE_DOCS, MERGE_FACTOR, multilingual
-
Fields inherited from interface com.jalios.jcms.JcmsConstants
ADATE_SEARCH, ADMIN_NOTES_PROP, ADVANCED_TAB, ARCHIVES_DIR, ASCII_WIDTH, CATEGORY_TAB, CDATE_SEARCH, COMMON_ALARM, CONTENT_TAB, COOKIE_MAX_AGE, CTRL_TOPIC_INTERNAL, CTRL_TOPIC_REF, CTRL_TOPIC_VALUE, CTRL_TOPIC_WRITE, CUSTOM_PROP, DOCCHOOSER_HEIGHT, DOCCHOOSER_WIDTH, DOCS_DIR, EDATE_SEARCH, EMAIL_REGEXP, ERROR_MSG, FORBIDDEN_FILE_ACCESS, FORBIDDEN_REDIRECT, FORCE_REDIRECT, ICON_ARCHIVE, ICON_LOCK, ICON_LOCK_STRONG, ICON_WARN, ICON_WH_BOOK_CLOSED, ICON_WH_BOOK_OPEN, INFORMATION_MSG, JALIOS_JUNIT_PROP, JCMS_CADDY, JCMS_MSG_LIST, JSYNC_DOWNLOAD_DIR, JSYNC_SYNC_ALARM, LOG_FILE, LOG_TOPIC_SECURITY, LOGGER_PROP, LOGGER_XMLPROP, MBR_PHOTO_DIR, MDATE_SEARCH, MONITOR_XML, OP_CREATE, OP_CREATE_STR, OP_DEEP_COPY, OP_DEEP_COPY_STR, OP_DEEP_DELETE, OP_DEEP_DELETE_STR, OP_DELETE, OP_DELETE_STR, OP_MERGE, OP_MERGE_STR, OP_UPDATE, OP_UPDATE_STR, PDATE_SEARCH, PHOTO_DIR, PHOTO_ICON, PHOTO_ICON_HEIGHT, PHOTO_ICON_WIDTH, PHOTO_LARGE, PHOTO_LARGE_HEIGHT, PHOTO_LARGE_WIDTH, PHOTO_NORMAL, PHOTO_NORMAL_HEIGHT, PHOTO_NORMAL_WIDTH, PHOTO_SMALL, PHOTO_SMALL_HEIGHT, PHOTO_SMALL_WIDTH, PHOTO_TINY, PHOTO_TINY_HEIGHT, PHOTO_TINY_WIDTH, PREVIOUS_TAB, PRINT_VIEW, PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, READ_RIGHT_TAB, SDATE_SEARCH, SEARCHENGINE_ALARM, SESSION_AUTHORIZED_FILENAMES_SET, STATS_REPORT_DIR, STATUS_PROP, STORE_XML, TEMPLATE_TAB, THUMBNAIL_LARGE_HEIGHT, THUMBNAIL_LARGE_WIDTH, THUMBNAIL_SMALL_HEIGHT, THUMBNAIL_SMALL_WIDTH, TYPES_ICON_ALT_PROP, TYPES_ICON_SUFFIX_PROP, TYPES_ICON_TITLE_PROP, TYPES_PREFIX_PROP, TYPES_THUMB_SUFFIX_PROP, UDATE_SEARCH, UPDATE_RIGHT_TAB, UPLOAD_DIR, URL_REGEXP, WARNING_MSG, WEBAPP_PROP, WFEXPRESS_ALARM, WFREMINDER_ALARM, WORKFLOW_TAB, WORKFLOW_XML
-
Fields inherited from interface com.jalios.util.JaliosConstants
CRLF, MILLIS_IN_ONE_DAY, MILLIS_IN_ONE_HOUR, MILLIS_IN_ONE_MINUTE, MILLIS_IN_ONE_MONTH, MILLIS_IN_ONE_SECOND, MILLIS_IN_ONE_WEEK, MILLIS_IN_ONE_YEAR
-
Constructor Summary
Constructors
Constructor and Description
LuceneCategorySearchEngine()
Initialize the Lucene Search Engine
-
Method Summary
Methods
Modifier and Type
Method and Description
void
add(Category cat)
Add given Category
to this lucene search engine.
void
add(java.util.Collection<Category> coll)
Add given Collection
of Category
to this lucene search engine.
protected void
addKeywordField(org.apache.lucene.document.Document doc,
Category cat,
java.lang.String lang,
java.lang.String fieldName,
java.lang.String fieldValue,
boolean applyBoost)
This methods create a unstored Lucene Field
with the given field's value
of the given Category
in the given language, and add into the given Document
.
protected void
addUnStoredField(org.apache.lucene.document.Document doc,
Category cat,
java.lang.String lang,
java.lang.String fieldName,
java.lang.String fieldValue,
boolean applyBoost)
This methods create a unstored Lucene Field
with the given field's value
of the given Category
in the given language, and add into the given Document
.
void
clearAll()
Clear indices in this searchEngine (undoable!).
void
delete(Category cat)
Delete given Category
from this lucene search engine.
void
delete(java.util.Collection<Category> coll)
Delete given Collection
of Category
from this lucene search engine.
protected com.jalios.jcms.search.DataIterator<Data>
getAllDataIterator()
This methods must be implemented by the LuceneSearchEngine.
java.util.Date
getIndexingDate(Category cat)
Retrieve the Date at which the specified Category was indexed in the search engine.
protected org.apache.log4j.Logger
getLogger()
This methods must be implemented by the LuceneSearchEngine.
protected void
indexData(org.apache.lucene.index.IndexWriter writer,
Data data,
java.lang.String lang)
This methods index the given Category in the given language, into the given index writer.
boolean
search(QueryHandler qh,
java.util.HashSet<? extends Publication> pubSet,
QueryResultSet resultSet)
Perform a full-text search.
java.util.Collection<Category>
searchCategories(org.apache.lucene.search.Query query)
Find Category matching the specified lucene Query
java.util.Collection<Category>
searchCategories(QueryHandler qh)
Find Category matching the specified QueryHandler search options (uses mainly the text search param)
void
update(Category cat)
Update given Category
in this lucene search engine.
void
update(java.util.Collection<Category> coll)
Update given Collection
of Category
in this lucene search engine.
-
Methods inherited from class com.jalios.jcms.search.LuceneDataSearchEngine
addData, addDataCollection, clearIndices, clearSearcher, deleteData, deleteDataCollection, getDirectory, getIndexingDate, getIndexingDate, getLastOptimizeDateSinceRestart, getLastOptimizeDuration, getLastReindexDateSinceRestart, getLastReindexDuration, getLuceneDocument, getOperationStartTime, getPrimaryTerm, getProgressState, getSearcher, index, index, isOperationRunning, optimizeIndices, reindexAll, remove, setIndexWriterOptions, updateData, updateDataCollection
-
-
Field Detail
-
REVISION
public static final java.lang.String REVISION
- See Also:
- Constant Field Values
-
MATCHED_CATEGORIES_ATTRIBUTE
public static final java.lang.String MATCHED_CATEGORIES_ATTRIBUTE
This variable is the attribute's key used by the LuceneCategorySearchEngine to
set the matched categories HashSet in the QueryResultSet Attribute.
- See Also:
- Constant Field Values
-
CATEGORY_INDEX_DIRECTORY
protected static final java.lang.String CATEGORY_INDEX_DIRECTORY
- See Also:
- Constant Field Values
-
NAME_FIELD
public static final java.lang.String NAME_FIELD
- See Also:
- Constant Field Values
-
SYNONYMS_FIELD
public static final java.lang.String SYNONYMS_FIELD
- See Also:
- Constant Field Values
-
DESCRIPTION_FIELD
public static final java.lang.String DESCRIPTION_FIELD
- See Also:
- Constant Field Values
-
ALLFIELDS_FIELD
public static final java.lang.String ALLFIELDS_FIELD
- See Also:
- Constant Field Values
-
Constructor Detail
-
LuceneCategorySearchEngine
public LuceneCategorySearchEngine()
throws java.lang.Exception
Initialize the Lucene Search Engine
- Throws:
java.lang.Exception
- if error occurs during initialization
-
Method Detail
-
add
public void add(Category cat)
Add given Category
to this lucene search engine.
- Specified by:
add
in interface CategorySearchEngine
- Parameters:
cat
- the Category
to index .
-
update
public void update(Category cat)
Update given Category
in this lucene search engine.
- Specified by:
update
in interface CategorySearchEngine
- Parameters:
cat
- the Category
to reindex .
-
delete
public void delete(Category cat)
Delete given Category
from this lucene search engine.
- Specified by:
delete
in interface CategorySearchEngine
- Parameters:
cat
- the Category
to reindex .
-
add
public void add(java.util.Collection<Category> coll)
Add given Collection
of Category
to this lucene search engine.
- Specified by:
add
in interface CategorySearchEngine
- Parameters:
coll
- the Collection
of Category
to index .
-
update
public void update(java.util.Collection<Category> coll)
Update given Collection
of Category
in this lucene search engine.
- Specified by:
update
in interface CategorySearchEngine
- Parameters:
coll
- the Collection
of Category
to reindex .
-
delete
public void delete(java.util.Collection<Category> coll)
Delete given Collection
of Category
from this lucene search engine.
- Specified by:
delete
in interface CategorySearchEngine
- Parameters:
coll
- the Collection
of Category
to reindex .
-
getIndexingDate
public java.util.Date getIndexingDate(Category cat)
Retrieve the Date at which the specified Category was indexed in the search engine.
- Specified by:
getIndexingDate
in interface CategorySearchEngine
- Parameters:
cat
- the Category
for which to retrieve the indexing date.
- Returns:
- the indexing date of the category or null if was not indexed.
- Since:
- jcms-6.0.1
-
clearAll
public void clearAll()
Clear indices in this searchEngine (undoable!).
- Specified by:
clearAll
in interface CategorySearchEngine
-
search
public boolean search(QueryHandler qh,
java.util.HashSet<? extends Publication> pubSet,
QueryResultSet resultSet)
Description copied from interface: CategorySearchEngine
Perform a full-text search.
- Specified by:
search
in interface CategorySearchEngine
- Parameters:
qh
- the Queryhandler in which to find search text and search options.pubSet
- a HashSet containing all the Publication
to search.
if empty, search is not performed at all.
if null, all Publication
found will be returned.
This set MUST NOT be modified by implementation.resultSet
- the QueryResultSet
that must be filled
with matching Publication
- Returns:
- true if a search was performed in the CategorySearchEngine.
Useful to differenciate a query returning zero result from a query
not performed due to missing paramerters (text for example).
-
searchCategories
public java.util.Collection<Category> searchCategories(QueryHandler qh)
Find Category matching the specified QueryHandler search options (uses mainly the text search param)
- Parameters:
qh
- the QueryHandler used to store
- Returns:
- a collection of Category, ordered by relevance
- Since:
- jcms-7.1
-
searchCategories
public java.util.Collection<Category> searchCategories(org.apache.lucene.search.Query query)
Find Category matching the specified lucene Query
- Parameters:
query
- a Lucene Query
- Returns:
- a collection of Category, ordered by relevance
- Since:
- jcms-7.1
-
getLogger
protected org.apache.log4j.Logger getLogger()
Description copied from class: LuceneDataSearchEngine
This methods must be implemented by the LuceneSearchEngine.
It must return the logger to be used for log messages.
- Specified by:
getLogger
in class LuceneDataSearchEngine
- Returns:
Logger
of this engine.
-
getAllDataIterator
protected com.jalios.jcms.search.DataIterator<Data> getAllDataIterator()
Description copied from class: LuceneDataSearchEngine
This methods must be implemented by the LuceneSearchEngine.
It must return a DataIterator used to iterate on all Data to index.
Used by LuceneDataSearchEngine.reindexAll()
.
- Specified by:
getAllDataIterator
in class LuceneDataSearchEngine
-
indexData
protected void indexData(org.apache.lucene.index.IndexWriter writer,
Data data,
java.lang.String lang)
throws java.io.IOException
This methods index the given Category in the given language, into the given index writer.
- Specified by:
indexData
in class LuceneDataSearchEngine
- Throws:
java.io.IOException
-
addUnStoredField
protected void addUnStoredField(org.apache.lucene.document.Document doc,
Category cat,
java.lang.String lang,
java.lang.String fieldName,
java.lang.String fieldValue,
boolean applyBoost)
This methods create a unstored Lucene Field
with the given field's value
of the given Category
in the given language, and add into the given Document
.
- Parameters:
applyBoost
- whether to apply the boost, useful for appendable field in which case
the boost should only be applied for the first element.
-
addKeywordField
protected void addKeywordField(org.apache.lucene.document.Document doc,
Category cat,
java.lang.String lang,
java.lang.String fieldName,
java.lang.String fieldValue,
boolean applyBoost)
This methods create a unstored Lucene Field
with the given field's value
of the given Category
in the given language, and add into the given Document
.
- Parameters:
applyBoost
- whether to apply the boost, useful for appendable field in which case
the boost should only be applied for the first element.
Copyright © 2001-2010 Jalios SA. All Rights Reserved.