Package com.jalios.jcms.search
Class LuceneDataSearchEngine
- java.lang.Object
-
- com.jalios.jcms.search.LuceneDataSearchEngine
-
- All Implemented Interfaces:
JcmsConstants,JaliosConstants
- Direct Known Subclasses:
LuceneCategorySearchEngine,LuceneMemberSearchEngine,LucenePublicationSearchEngine
public abstract class LuceneDataSearchEngine extends java.lang.Object implements JcmsConstants
This class provides a base class to index JCMSDatausing Lucene.- Since:
- jcms-5.5.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLuceneDataSearchEngine.IndexingLatchCountDownLatch used to be notified of the end of the next indexing operation taking place on a Data.static classLuceneDataSearchEngine.ReindexOptionsClass holding reindexing options.
-
Field Summary
Fields Modifier and Type Field Description protected AlarmManageralarmMgrstatic BackgroundProcessManagerBACKGROUND_PROCESS_MGRprotected Channelchannelprotected java.lang.StringdirectoryNameprotected java.lang.StringengineNamestatic java.lang.StringID_FIELDprotected java.lang.ObjectindexAccessLockstatic java.lang.StringINDEXING_DATE_EXTRAINFOstatic java.lang.StringINDEXING_DATE_FIELDprotected java.util.List<java.lang.String>langListLanguages in which the engine index and search its content.protected java.util.Map<java.lang.String,org.apache.lucene.store.FSDirectory>langToIndexDirMapLucene FSDirectory in which the engine index and search its content.protected java.util.Map<java.lang.String,org.apache.lucene.index.IndexWriter>langToIndexWriterMapLucene IndexWriter reused for all write operation.protected booleanmultilingual-
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
-
Fields inherited from interface com.jalios.jcms.JcmsConstants
ADATE_SEARCH, ADMIN_NOTES_PROP, ADVANCED_TAB, AJAX_MODE_ATTR, ARCHIVES_DIR, ASCII_WIDTH, CATEGORY_TAB, CDATE_SEARCH, CLASS_PROPERTY, COMMON_ALARM, CONTENT_TAB, COOKIE_MAX_AGE, COUNTRY_SPRITE, CS_TYPOLOGY_ROOT_CAT_VID, CTRL_TOPIC_INTERNAL, CTRL_TOPIC_REF, CTRL_TOPIC_VALUE, CTRL_TOPIC_WRITE, CUSTOM_PROP, DATA_DIRECTORY, DEFAULT_PHOTO_PROP, DOCCHOOSER_HEIGHT, DOCCHOOSER_WIDTH, DOCS_DIR, EDATE_SEARCH, EMAIL_REGEXP, ERROR_MSG, FORBIDDEN_FILE_ACCESS, FORBIDDEN_REDIRECT, FORCE_REDIRECT, GLYPH_ICON_PREFIX, ICON_ARCHIVE, ICON_ICON_PREFIX, ICON_LOCK, ICON_LOCK_STRONG, ICON_PREFIX_PROP, ICON_WARN, ICON_WH_BOOK_CLOSED, ICON_WH_BOOK_OPEN, INFORMATION_MSG, IS_IN_FRONT_OFFICE, JALIOS_JUNIT_PROP, JCMS_CADDY, JCMS_MSG_LIST, JCMS_TOASTR_COLLECTION, JSYNC_DOWNLOAD_DIR, JSYNC_SYNC_ALARM, LANG_SPRITE, 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, ORGANIZATION_ROOT_GROUP_PROP, PDATE_SEARCH, PHOTO_DIR, PHOTO_ICON, PHOTO_ICON_HEIGHT, PHOTO_ICON_PROP_PREFIX, PHOTO_ICON_WIDTH, PHOTO_LARGE, PHOTO_LARGE_HEIGHT, PHOTO_LARGE_PROP_PREFIX, PHOTO_LARGE_WIDTH, PHOTO_MINI, PHOTO_MINI_HEIGHT, PHOTO_MINI_PROP_PREFIX, PHOTO_MINI_WIDTH, PHOTO_NORMAL, PHOTO_NORMAL_HEIGHT, PHOTO_NORMAL_PROP_PREFIX, PHOTO_NORMAL_WIDTH, PHOTO_SMALL, PHOTO_SMALL_HEIGHT, PHOTO_SMALL_PROP_PREFIX, PHOTO_SMALL_WIDTH, PHOTO_TINY, PHOTO_TINY_HEIGHT, PHOTO_TINY_PROP_PREFIX, PHOTO_TINY_WIDTH, PREVIOUS_TAB, PRINT_VIEW, PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, RAW_CONTENT_ICON_PREFIX, READ_RIGHT_TAB, SDATE_SEARCH, SEARCHENGINE_ALARM, SECURITY_LOG_FILE, SESSION_AUTHORIZED_FILENAMES_SET, SPRITE_ICON_PREFIX, STATS_REPORT_DIR, STATUS_PROP, STORE_DIR, STORE_XML, SUCCESS_MSG, SVG_ICON_PREFIX, SVGINLINE_ICON_PREFIX, TEMPLATE_TAB, THUMBNAIL_LARGE_HEIGHT, THUMBNAIL_LARGE_WIDTH, THUMBNAIL_SMALL_HEIGHT, THUMBNAIL_SMALL_WIDTH, TTCARD_MEDIA_HEIGHT, TTCARD_MEDIA_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, UPLOAD_PERMISSION_COUNT_PROP_PREFIX, UPLOAD_PERMISSION_SIZE_PROP_PREFIX, URL_REGEXP, VID_LOGGED_MEMBER, WARNING_MSG, WEBAPP_PROP, WFEXPRESS_ALARM, WFREMINDER_ALARM, WORKFLOW_TAB, WORKFLOW_XML
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedLuceneDataSearchEngine(java.lang.String engineName, java.lang.String directoryName, boolean multilingual)Construct a new Lucene Data Search Engine given a directory name.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected org.apache.lucene.search.IndexSearcheracquireSearcher(java.lang.String[] languages, java.lang.String defaultLanguage)Acquire a Searcher to search in the specified languageprotected voidaddData(Data data)Add givenDatato this lucene search engine.protected voidaddDataCollection(java.util.Collection<? extends Data> coll)Add givenCollectionofDatato this lucene search engine.protected voidclearIndices()Delete allDocumentfrom all indices (overwrite existing index with a new one).protected voidclearSearcher()Close current searchers and clear it for future renewal.voidcreateSnapshot(java.io.File targetDirectory)Create snapshots of all index in this engine, inside the specified target directory.protected voiddeleteData(Data data)Delete givenDatafrom this lucene search engine.protected voiddeleteDataCollection(java.util.Collection<? extends Data> coll)Delete givenCollectionofDatafrom this lucene search engine.protected DataIterator<Data>getAllDataIterator()Deprecated.org.apache.lucene.analysis.AnalyzergetAnalyzer(java.lang.String lang, boolean isIndexing)Expert : Retrieve the lucene Analyzer to use during search and indexing.protected abstract DataIterator<Data>getDataIterator(LuceneDataSearchEngine.ReindexOptions options)This methods must be implemented by the LuceneSearchEngine.org.apache.lucene.store.FSDirectorygetDirectory(java.lang.String lang)Expert: Returns the lucene directory used for the specified language.java.util.DategetIndexingDate(Data data)Retrieve the Date at which the specified Data was indexed in the main language of the site.java.util.DategetIndexingDate(Data data, java.lang.String lang)Returns the date at which the specified Data has been indexed for the specified language.LuceneDataSearchEngine.IndexingLatchgetIndexingLatch(Data data)Retrieve a new IndexingLatch useful to be notified of the end of the next indexing operation to take place on the specified Data.org.apache.lucene.index.IndexWritergetIndexWriter(java.lang.String lang)Expert: Returns the lucene writer used for the specified language.java.util.DategetLastOptimizeDateSinceRestart()longgetLastOptimizeDuration()java.util.DategetLastReindexDateSinceRestart()longgetLastReindexDuration()protected abstract org.apache.log4j.LoggergetLogger()This methods must be implemented by the LuceneSearchEngine.org.apache.lucene.document.DocumentgetLuceneDocument(Data data, java.lang.String lang)Returns the lucene Document corresponding to the specified Data in the index of the the specified language.longgetOperationStartTime()protected org.apache.lucene.index.TermgetPrimaryTerm(Data data)Retrieve the a lucene Terme suitable for use as primary key when searching/removing/updating a unique lucene document for the specified dataintgetProgressState()protected abstract AdminSearchEnginesHandler.ActiongetReindexAllAction()Retrieve the Action to use when starting aAdminSearchEngineProcessfor full reindexing.org.apache.lucene.search.SearcherManagergetSearcherManager(java.lang.String lang)Expert: Returns the lucene SearcherManager used for the specified language.org.apache.lucene.search.similarities.SimilaritygetSimilarity()Expert : Returns the Similarity implementation to be used by Searcher of this LuceneDataSearchEngine.protected voidindex(org.apache.lucene.index.IndexWriter writer, java.util.Collection<? extends Data> coll, java.lang.String lang)Expert : Index aCollectionofDatainto lucene.protected voidindex(org.apache.lucene.index.IndexWriter writer, java.util.Iterator<? extends Data> iterator, int iteratorSize, java.lang.String lang)Expert : Index allDatareturned by the specifiedIteratorinto lucene.protected abstract voidindexData(org.apache.lucene.index.IndexWriter writer, Data data, java.lang.String lang)This methods must be implemented by the LuceneSearchEngine.booleanisOperationRunning()voidoptimizeIndices()Optimize all incides of the LuceneSearchEngine.voidreindex(LuceneDataSearchEngine.ReindexOptions options)Reindex all Data matching specified reindex option.voidreindexAll()Clears the lucene indices of this searchengine, reindex all content retrieved using protected method getAllDataIterator().protected voidreleaseSearcher(java.lang.String[] languages, java.lang.String defaultLanguage, org.apache.lucene.search.IndexSearcher searcher)Release the specified searcher, which was created for specified language.protected voidremove(org.apache.lucene.index.IndexWriter writer, java.util.Collection<? extends Data> coll, java.lang.String lang)Expert: Remove aCollectionofDatafrom the lucene index.protected voidupdateData(Data data)Update givenDatain this lucene search engine.protected voidupdateDataCollection(java.util.Collection<? extends Data> coll)Update givenCollectionofDatain this lucene search engine.
-
-
-
Field Detail
-
ID_FIELD
public static final java.lang.String ID_FIELD
- See Also:
- Constant Field Values
-
INDEXING_DATE_FIELD
public static final java.lang.String INDEXING_DATE_FIELD
- See Also:
- Constant Field Values
-
INDEXING_DATE_EXTRAINFO
public static final java.lang.String INDEXING_DATE_EXTRAINFO
- See Also:
- Constant Field Values
-
BACKGROUND_PROCESS_MGR
public static final BackgroundProcessManager BACKGROUND_PROCESS_MGR
-
channel
protected final Channel channel
-
alarmMgr
protected final AlarmManager alarmMgr
-
engineName
protected final java.lang.String engineName
-
directoryName
protected final java.lang.String directoryName
-
multilingual
protected final boolean multilingual
-
langList
protected final java.util.List<java.lang.String> langList
Languages in which the engine index and search its content.- all site languages for multilingual engine
- default site language for monolingual engine
-
langToIndexDirMap
protected final java.util.Map<java.lang.String,org.apache.lucene.store.FSDirectory> langToIndexDirMap
Lucene FSDirectory in which the engine index and search its content.- one Directory per site languages for multilingual engine
- only one Directory in the default site language, for monolingual engine
-
langToIndexWriterMap
protected final java.util.Map<java.lang.String,org.apache.lucene.index.IndexWriter> langToIndexWriterMap
Lucene IndexWriter reused for all write operation.
-
indexAccessLock
protected final java.lang.Object indexAccessLock
-
-
Constructor Detail
-
LuceneDataSearchEngine
protected LuceneDataSearchEngine(java.lang.String engineName, java.lang.String directoryName, boolean multilingual) throws java.lang.ExceptionConstruct a new Lucene Data Search Engine given a directory name.- Parameters:
engineName- the name of the engine (eg "Publication", "Member", "Category")directoryName- the name of the directory to create (eg Publicationmultilingual- true to use one index per language, false to use only one index- Throws:
java.lang.Exception- on any error
-
-
Method Detail
-
createSnapshot
public void createSnapshot(java.io.File targetDirectory) throws java.io.IOExceptionCreate snapshots of all index in this engine, inside the specified target directory.- Parameters:
targetDirectory- the directory in which to store the snapshot
Example :WEB-INF/data/lucene-snapshots/snapshot-2021-04-29-1640- Throws:
java.io.IOException- Since:
- jcms-10.0.5 / JCMS-8395
- See Also:
IndexSnapshotManager.createSnapshot()
-
index
protected void index(org.apache.lucene.index.IndexWriter writer, java.util.Collection<? extends Data> coll, java.lang.String lang) throws java.io.IOExceptionExpert : Index aCollectionofDatainto lucene.
This method is NOT synchronized, the caller is responsible to do it!- Parameters:
writer- The Lucene directory writer with which data should be addedcoll- a collection of Data, must not be nulllang- the language in which data are being added- Throws:
java.io.IOException- on io error
-
index
protected void index(org.apache.lucene.index.IndexWriter writer, java.util.Iterator<? extends Data> iterator, int iteratorSize, java.lang.String lang) throws java.io.IOExceptionExpert : Index allDatareturned by the specifiedIteratorinto lucene.
This method is NOT synchronized, the caller is responsible to do it!- Parameters:
writer- The Lucene directory writer with which data should be addediterator- a iterator of Data, must not be nulllang- the language in which data are being added- Throws:
java.io.IOException- on io error
-
remove
protected void remove(org.apache.lucene.index.IndexWriter writer, java.util.Collection<? extends Data> coll, java.lang.String lang) throws java.io.IOExceptionExpert: Remove aCollectionofDatafrom the lucene index.
This method is NOT synchronized, the caller is responsible to do it!- Parameters:
writer- The Lucene directory writer with which data should be removedcoll- a collection of Data, must not be null- Throws:
java.io.IOException- if the directory could not be opened or deletion could not be performed
-
getPrimaryTerm
protected org.apache.lucene.index.Term getPrimaryTerm(Data data)
Retrieve the a lucene Terme suitable for use as primary key when searching/removing/updating a unique lucene document for the specified data- Returns:
- a Term instance, must not return null
-
getDirectory
public org.apache.lucene.store.FSDirectory getDirectory(java.lang.String lang)
Expert: Returns the lucene directory used for the specified language.
Warning!!! you should not modify the index (LuceneDataSearchEngine rely on its own modification for optimization purpose), use this method only to access the directory in readonly !.- Parameters:
lang- the language of JCMS (ISO-639) in which to retrieve the Directory- Returns:
- the
FSDirectoryof the specified language or null if no Directory is available for this language.
-
getIndexWriter
public org.apache.lucene.index.IndexWriter getIndexWriter(java.lang.String lang)
Expert: Returns the lucene writer used for the specified language.- Parameters:
lang- the language of JCMS (ISO-639) in which to retrieve the IndexWriter- Returns:
- the
IndexWriterof the specified language or null if no Directory is available for this language.
-
getSearcherManager
public org.apache.lucene.search.SearcherManager getSearcherManager(java.lang.String lang)
Expert: Returns the lucene SearcherManager used for the specified language.- Parameters:
lang- the language of JCMS (ISO-639) in which to retrieve the IndexWriter- Returns:
- the
SearcherManagerof the specified language or null if no Directory is available for this language.
-
getAnalyzer
public org.apache.lucene.analysis.Analyzer getAnalyzer(java.lang.String lang, boolean isIndexing)Expert : Retrieve the lucene Analyzer to use during search and indexing.- Parameters:
lang- the ISO-639 language code of the text analyzed, may be nullisIndexing- true if the returned analyzer is to be used for indexing, false in any other case (e.g. during search etc..)- Returns:
- an instance of Analyzer to use, never return null.
- Since:
- 9.0.3
-
getSimilarity
public org.apache.lucene.search.similarities.Similarity getSimilarity()
Expert : Returns the Similarity implementation to be used by Searcher of this LuceneDataSearchEngine.- Returns:
- the Similarity instance to use this search engine, never returns null.
-
getLuceneDocument
public org.apache.lucene.document.Document getLuceneDocument(Data data, java.lang.String lang)
Returns the lucene Document corresponding to the specified Data in the index of the the specified language.- Parameters:
data- the Data being looked forlang- the language in which to check- Returns:
- a lucene Document or null if could not be found
- Since:
- jcms-6.0.1
-
getIndexingDate
public java.util.Date getIndexingDate(Data data, java.lang.String lang)
Returns the date at which the specified Data has been indexed for the specified language.- Parameters:
data- the Data being looked forlang- the language in which to check- Returns:
- a Date or null if it could not be found
- Since:
- jcms-6.0.1
-
getIndexingDate
public java.util.Date getIndexingDate(Data data)
Retrieve the Date at which the specified Data was indexed in the main language of the site.- Parameters:
data- theDatafor which to retrieve the indexing date.- Returns:
- the indexing date of the Data or null if was not indexed.
- Since:
- jcms-6.0.1
-
addData
protected void addData(Data data)
Add givenDatato this lucene search engine. This method is asynchronous, the given data may not be (and will certainly not be) available immediately after call.
-
updateData
protected void updateData(Data data)
Update givenDatain this lucene search engine. This method is asynchronous, the given data may not be (and will certainly not be) available immediately after call.
-
deleteData
protected void deleteData(Data data)
Delete givenDatafrom this lucene search engine. This method is asynchronous, the given data may not be (and will certainly not be) available immediately after call.
-
addDataCollection
protected void addDataCollection(java.util.Collection<? extends Data> coll)
Add givenCollectionofDatato this lucene search engine. This method is asynchronous, the given datas may not be (and will certainly not be) available immediately after call.
-
updateDataCollection
protected void updateDataCollection(java.util.Collection<? extends Data> coll)
Update givenCollectionofDatain this lucene search engine. This method is asynchronous, the given datas may not be (and will certainly not be) available immediately after call.
-
deleteDataCollection
protected void deleteDataCollection(java.util.Collection<? extends Data> coll)
Delete givenCollectionofDatafrom this lucene search engine. This method is asynchronous, the given datas may not be (and will certainly not be) available immediately after call.
-
clearIndices
protected void clearIndices()
Delete allDocumentfrom all indices (overwrite existing index with a new one). Warning: this operation is undoable! It is run against the indexing thread, it will not return as long as the indexing process is not done, and will block the indexing thread from running when doing its job.
-
optimizeIndices
public void optimizeIndices()
Optimize all incides of the LuceneSearchEngine. Warning: This is a potentially long and heavy process on large index, do not call without being sure of what you do. It is run against the indexing thread, it will not return as long as the indexing process is not done, and will block the indexing thread from running when doing its job.
-
getLastOptimizeDateSinceRestart
public java.util.Date getLastOptimizeDateSinceRestart()
- Returns:
- a date indicating the last time the optimize was done, or null if no optimization was done.
-
getLastOptimizeDuration
public long getLastOptimizeDuration()
- Returns:
- a duration in millisecond indicating the duration of the last optimize operation since restart (or 0 if none occured).
-
reindexAll
public void reindexAll() throws java.io.IOExceptionClears the lucene indices of this searchengine, reindex all content retrieved using protected method getAllDataIterator(). It is run against the indexing thread, it will not return as long as the indexing process is not done, and will block the indexing thread from running when doing its job. You can access status regarding operation progress using :isOperationRunning()andgetProgressState().- Throws:
java.io.IOException- if an error occurs during indexing
-
getReindexAllAction
protected abstract AdminSearchEnginesHandler.Action getReindexAllAction()
Retrieve the Action to use when starting aAdminSearchEngineProcessfor full reindexing.- Returns:
- Since:
- 10.0.8 / JCMS-10687
-
reindex
public void reindex(LuceneDataSearchEngine.ReindexOptions options) throws java.io.IOException
Reindex all Data matching specified reindex option. It is run against the indexing thread, it will not return as long as the indexing process is not done, and will block the indexing thread from running when doing its job. You can access status regarding operation progress using :isOperationRunning()andgetProgressState().- Parameters:
options-- Throws:
java.io.IOException- Since:
- jcms-10.0.5 / JCMS-8170
-
getLastReindexDateSinceRestart
public java.util.Date getLastReindexDateSinceRestart()
- Returns:
- a date indicating the last time the reindex was done, or null if no reindex was done.
-
getLastReindexDuration
public long getLastReindexDuration()
- Returns:
- a duration in millisecond indicating the duration of the last reindex operation since restart (or 0 if none occured).
-
acquireSearcher
protected org.apache.lucene.search.IndexSearcher acquireSearcher(java.lang.String[] languages, java.lang.String defaultLanguage) throws java.io.IOExceptionAcquire a Searcher to search in the specified language- Parameters:
languages- the language in which search is requesteddefaultLanguage- language used if no languages were explicitely specified and if current language is not available either. (ISO-639 language code)- Returns:
- a IndexSearcher instance
- Throws:
java.io.IOException
-
releaseSearcher
protected void releaseSearcher(java.lang.String[] languages, java.lang.String defaultLanguage, org.apache.lucene.search.IndexSearcher searcher)Release the specified searcher, which was created for specified language.- Parameters:
languages- the language in which search was requesteddefaultLanguage- language used if no languages were explicitely specified and if current language is not available either. (ISO-639 language code)searcher- the searcher that was acquired throughacquireSearcher(String[], String)
-
clearSearcher
protected void clearSearcher()
Close current searchers and clear it for future renewal. Called after index change.
-
getIndexingLatch
public LuceneDataSearchEngine.IndexingLatch getIndexingLatch(Data data)
Retrieve a new IndexingLatch useful to be notified of the end of the next indexing operation to take place on the specified Data.Data original = ... Data update = origina.getUpdateInstance(); // update.set(...) IndexingLatch latch = searchEngine.getIndexingLatch(original); update.performUpdate()...; latch.await();
- Parameters:
data- the Data that must be monitored for indexing- Returns:
- an IndexingLatch instance, or null if specified Data was null
- Since:
- jcms-8.0.2, jcms-9, JCMS-3805
-
isOperationRunning
public boolean isOperationRunning()
- Returns:
- true if an operation of which its progess is being watched (reindexing, optimizing)
- See Also:
getProgressState()
-
getProgressState
public int getProgressState()
- Returns:
- a percentage showing current state of operation, or 100 if no operation is running
- See Also:
isOperationRunning()
-
getOperationStartTime
public long getOperationStartTime()
- Returns:
- the time at which the current operation was started, or 0 if no operation is running
- See Also:
isOperationRunning()
-
getLogger
protected abstract org.apache.log4j.Logger getLogger()
This methods must be implemented by the LuceneSearchEngine. It must return the logger to be used for log messages.- Returns:
Loggerof this engine.
-
getAllDataIterator
protected DataIterator<Data> getAllDataIterator()
Deprecated.This methods must be implemented by the LuceneSearchEngine. It must return a DataIterator used to iterate on all Data to index. Used byreindexAll().
-
getDataIterator
protected abstract DataIterator<Data> getDataIterator(LuceneDataSearchEngine.ReindexOptions options)
This methods must be implemented by the LuceneSearchEngine. It must return a DataIterator used to iterate on Data to index. Used byreindex(ReindexOptions).- Since:
- jcms-10.0.5 / JCMS-8170
-
indexData
protected abstract void indexData(org.apache.lucene.index.IndexWriter writer, Data data, java.lang.String lang) throws java.io.IOExceptionThis methods must be implemented by the LuceneSearchEngine. It must index the given data in the given language, into the given index writer.- Throws:
java.io.IOException
-
-