|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.jalios.jcms.search.LuceneDataSearchEngine com.jalios.jcms.search.LuceneFileSearchEngine
public class LuceneFileSearchEngine
This class is an implementation of FileSearchEngine base on Lucene search engine.
Field Summary | |
---|---|
static String |
AUTHORID_FIELD
Field name for the id of the FileDocument's author, e.g "j_2", or "21243_DBMember" |
static String |
CLASSNAME_FIELD
Field name for the className in jcms, e.g. |
static String |
CONTENTS_FIELD
Field name for the content of the file |
static String |
FILE_INDEX_DIRECTORY
|
static String |
JALIOS_DATE_FIELD
Field name for the Indexing Date (time in ms) |
static String |
JCMS_ID_FIELD
Field name for the id in jcms, e.g. |
static String |
JCMS_PATH_FIELD
Field name for the relative path in jcms, e.g. |
static String |
MODIFIED_FIELD
Field name for the last modified date of the file (time in ms) when it was indexed |
static String |
PATH_FIELD
Field name for the file path (file.getPath()) when it was indexed |
static String |
PSTATUS_FIELD
Field name for the pstatus of the FileDocument, eg : "-10", "0", "100" |
static String |
REVISION
|
static String |
WORKSPACEID_FIELD
Field name for the id of the FileDocument's workspace, e.g "j_4" |
Fields inherited from class com.jalios.jcms.search.LuceneDataSearchEngine |
---|
alarmMgr, 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.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 | |
---|---|
LuceneFileSearchEngine()
|
Method Summary | |
---|---|
void |
add(FileDocument fileDocument)
Add given FileDocument to this lucene search engine. |
void |
delete(FileDocument fileDocument)
Delete given FileDocument from this lucene search engine. |
protected com.jalios.jcms.search.DataIterator<Data> |
getAllDataIterator()
This methods must be implemented by the LuceneSearchEngine. |
org.apache.lucene.store.FSDirectory |
getDirectory()
Returns the lucene directory used by this LuceneFileSearchEngine. |
org.apache.lucene.document.Document |
getDocument(String filename)
Retrieve the Lucene Document bound to the specified filename. |
int |
getFileCount()
|
protected org.apache.log4j.Logger |
getLogger()
This methods must be implemented by the LuceneSearchEngine. |
org.apache.lucene.document.Document |
getLuceneDocument(FileDocument fileDoc,
String content)
Retrieve a new lucene Document for the specified file in preparation of indexing. |
protected org.apache.lucene.index.Term |
getPrimaryTerm(Data data)
Override method for compatibility with legacy lucene file index which uses lucene field "id" (JCMS_ID_FIELD) for Data id, instead of the lucene field "_id_" (ID_FIELD) expected by default by LuceneDataSearchEngine. |
void |
index(FileDocument fileDoc,
String content)
Add the specified FileDocument to the index, with the specified content. |
protected void |
indexData(org.apache.lucene.index.IndexWriter writer,
Data data,
String lang)
This methods index the given FileDocument in the default language, into the given index writer. |
boolean |
isAvailable()
|
LinkedHashMap<String,Float> |
search(QueryHandler qh)
Return the list of publication's identifier with a lucene search. |
boolean |
search(QueryHandler qh,
HashSet<? extends Publication> pubSet,
LinkedHashMap<String,Float> resultMap)
Perform a full-text search on indexed files |
boolean |
search(QueryHandler qh,
HashSet<? extends Publication> pubSet,
QueryResultSet resultSet,
boolean searchInDB)
Perform a full-text search on indexed files |
LinkedHashMap<String,Float> |
search(QueryHandler qh,
List<String> idList)
Filters the given list of publication's identifier with a lucene search. |
void |
update(FileDocument fileDocument)
Update given Publication in this lucene search engine. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String REVISION
public static final String FILE_INDEX_DIRECTORY
public static final String PATH_FIELD
public static final String CONTENTS_FIELD
public static final String MODIFIED_FIELD
public static final String JALIOS_DATE_FIELD
public static final String JCMS_PATH_FIELD
public static final String JCMS_ID_FIELD
public static final String AUTHORID_FIELD
public static final String PSTATUS_FIELD
public static final String WORKSPACEID_FIELD
public static final String CLASSNAME_FIELD
Constructor Detail |
---|
public LuceneFileSearchEngine() throws Exception
Exception
Method Detail |
---|
public org.apache.lucene.store.FSDirectory getDirectory()
IndexReader.indexExists(Directory)
.
public boolean isAvailable()
isAvailable
in interface FileSearchEngine
public org.apache.lucene.document.Document getDocument(String filename)
filename
- relative file path e.g. "upload/docs/file.txt"
public boolean search(QueryHandler qh, HashSet<? extends Publication> pubSet, QueryResultSet resultSet, boolean searchInDB)
search
in interface FileSearchEngine
qh
- the Queryhandler in which to find search text and search options.pubSet
- a HashSet containing all the Publication
to search. Publication
found will be returned. resultSet
- the QueryResultSet
that must be filled
with matching Publication
searchInDB
- if false, only JStore publication are set in pubSet
public boolean search(QueryHandler qh, HashSet<? extends Publication> pubSet, LinkedHashMap<String,Float> resultMap)
qh
- the Queryhandler in which to find search text and search options.pubSet
- a HashSet containing all the Publication
to search. Publication
found will be returned. resultMap
- the map that must be filled with matching {Publication's Id, score}
public LinkedHashMap<String,Float> search(QueryHandler qh, List<String> idList)
FileSearchEngine
search
in interface FileSearchEngine
qh
- the Queryhandler in which to find search text and search options.idList
- the list of publication's identifier
idList
and respect its order.public LinkedHashMap<String,Float> search(QueryHandler qh)
FileSearchEngine
search
in interface FileSearchEngine
qh
- the Queryhandler in which to find search text and search options.
public int getFileCount()
getFileCount
in interface FileSearchEngine
public org.apache.lucene.document.Document getLuceneDocument(FileDocument fileDoc, String content)
fileDoc
- the FileDocument for which file is being indexedcontent
- the content of the file, optionnal.
public void add(FileDocument fileDocument)
FileDocument
to this lucene search engine.
This method is asynchronous, the given data may not be (and will
certainly not be) added immediately after call.
add
in interface FileSearchEngine
fileDocument
- the FileDocument
to index .public void update(FileDocument fileDocument)
Publication
in this lucene search engine.
This method is asynchronous, the given data may not be (and will
certainly not be) updated immediately after call.
update
in interface FileSearchEngine
fileDocument
- the FileDocument
to reindex .public void delete(FileDocument fileDocument)
FileDocument
from this lucene search engine.
This method is asynchronous, the given data may not be (and will
certainly not be) deleted immediately after call.
delete
in interface FileSearchEngine
fileDocument
- the FileDocument
to delete from index .public void index(FileDocument fileDoc, String content)
Thread safety : This method is ran against the indexing thread
created for LuceneFileSearchEngine (ie using the same lock).
and therefore it will block if a indexing is already being performed,
and it will block indexing until finished .
Therefore invoke wisely (it should only be needed
by JCMSUploadIndexer
and during unitest).
fileDoc
- the FileDocument to be indexed in lucenecontent
- the content that was extracted for the FileDocumentprotected org.apache.log4j.Logger getLogger()
LuceneDataSearchEngine
getLogger
in class LuceneDataSearchEngine
Logger
of this engine.protected com.jalios.jcms.search.DataIterator<Data> getAllDataIterator()
LuceneDataSearchEngine
LuceneDataSearchEngine.reindexAll()
.
getAllDataIterator
in class LuceneDataSearchEngine
protected void indexData(org.apache.lucene.index.IndexWriter writer, Data data, String lang) throws IOException
indexData
in class LuceneDataSearchEngine
IOException
protected org.apache.lucene.index.Term getPrimaryTerm(Data data)
getPrimaryTerm
in class LuceneDataSearchEngine
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |