public class LuceneIndex extends LuceneDataStore implements SdxObject, Index
From here we can get an IndexReader, a Searcher, and know a little more about defined fields.
SdxObject.ConfigurationNode| Modifier and Type | Field and Description |
|---|---|
static int |
ACTION_ADD_DOCUMENT
int representation of indexing action for adding a document.
|
protected java.util.Date |
creationTimestamp
The creation date of this index
|
java.lang.String |
CURRENT_INDEX_DIR
The current directory name
|
static int |
DEFAULT_MAX_FIELD_LENGTH
Defaults for IndexWriter parameters; these are based on lucene defaults
|
static int |
DEFAULT_MAX_MERGE_DOCS
Defaults for IndexWriter parameters; these are based on lucene defaults
|
static int |
DEFAULT_MERGE_FACTOR
Defaults for IndexWriter parameters; these are based on lucene defaults
|
protected java.io.File |
lastModFile
The "last-modification-timestamp" file
|
protected long |
lastModificationTimestamp
The last modification timestamp of this index
|
ALL_FIELD, ALL_VALUE, analyzer, fsd, fsdFile, ID_FIELD, searcher, useCompoundFiles, XML_LANG_FIELD_configuration, _context, _description, _encoding, _id, _locale, _logger, _manager, _xmlizable_objects, _xmlLang, isToSaxInitializedDEFAULT_ENCODINGCLASS_NAME_SUFFIX, CREATION_TIMESTAMP_FILENAME, LAST_MODIFICATION_DATE_FILENAMEALL_SAVE_ATTRIB, PATH_ATTRIB, SAVE_DIRECTORY_PARAM| Constructor and Description |
|---|
LuceneIndex(java.io.File dir,
java.lang.String host,
java.lang.Integer port,
java.lang.String appId,
java.lang.String dbId)
Builds an index with fields definition and a path to the index files.
|
LuceneIndex(java.io.File dir,
java.lang.String host,
java.lang.Integer port,
java.lang.String appId,
java.lang.String dbId,
boolean useCompoundFiles) |
LuceneIndex(LuceneIndex parentIndex)
Sub index constructor
|
LuceneIndex(LuceneIndex parentIndex,
java.io.File dir)
Sub index constructor
|
| Modifier and Type | Method and Description |
|---|---|
void |
backup(SaveParameters save_config)
Save LuceneIndex files
|
void |
configure(org.apache.avalon.framework.configuration.Configuration configuration) |
void |
deleteDocument(java.lang.String docId)
Deletes a document from the index.
|
int |
docCount() |
void |
freeResources()
Free's the resources associated with this index
USE WITH CARE!
|
protected java.lang.String |
getClassNameSuffix()
Sub classes should element this method to return their class name suffix for SAX output
|
java.util.Date |
getCreationDate()
Returns the creation date of this Lucene index.
|
Field |
getDefaultField()
Returns the default field for this index.
|
Field |
getField(java.lang.String name)
Returns a field given a name.
|
int |
getFieldType(java.lang.String name)
Returns the type of a field.
|
java.lang.String |
getFieldValue(IndexableDocument doc,
java.lang.String fieldName)
Gets the value of a field.
|
java.util.Date |
getLastModificationDate()
Returns the last modification date
Returns the the last modification timestamp of this Lucene index as a
Date.
|
long |
getLastModificationTimestamp()
Returns the last modification timestamp
|
java.util.Locale |
getLocale(java.lang.String name)
Returns the locale for a field.
|
MetaAnalyzer |
getMetaAnalyzer()
Gets the MetaAnalyzer
|
QueryParser |
getQueryParser() |
org.apache.lucene.index.IndexReader |
getReader()
Gets a Lucene reader
Ensures we have a correct Lucene reader for this index.
|
org.apache.lucene.index.IndexReader |
getReader(boolean automaticRecycle) |
java.lang.String |
getRemoteIndexName() |
org.apache.lucene.search.Searchable |
getSearcher()
Gets a Lucene searcher
Ensures we have a correct Lucene searcher for this index.
|
org.apache.lucene.search.Searchable |
getSearcher(boolean automaticRecycle) |
protected org.apache.lucene.index.IndexWriter |
getWriter(org.apache.lucene.store.Directory directory)
Gets a writer for the Lucene index
|
protected org.apache.lucene.index.IndexWriter |
getWriter(org.apache.lucene.store.Directory directory,
boolean create) |
boolean |
hasBeenModified()
Has Lucene index been modified
Returns true if this Lucene index has been modified since the last
modification timestamp.
|
void |
indexModified() |
void |
indexModified(boolean createLastModficationTimestampFile)
Deprecated.
Use
indexModified() instead. |
void |
init()
Initializes the Lucene database.
|
boolean |
isSubIndex()
Tell if the index is a subIndex or not
|
void |
mergeCurrentBatch()
Merges any batch in memory
|
void |
mergeCurrentBatch(boolean optimize)
Merges any batch in memory and optimize it if necessary
|
void |
optimize()
Index file optimization
|
void |
recycleIndexReader()
Recycles the Lucene reader for this index
|
void |
recycleLuceneIndexSearcher()
Recycles the Lucene searcher for this index
|
void |
recycleSearcherReader()
Recycles Lucene Searcher and Reader
|
void |
restore(SaveParameters save_config)
Restore LuceneIndex files
|
protected void |
setDocCount(int i) |
void |
setMetaAnalyzer(MetaAnalyzer mAnalyzer)
Sets the MetaAnalyzer
|
void |
setParameters(LuceneIndexParameters params)
Sets the indexing parameters
|
void |
toSAX(org.xml.sax.ContentHandler hdl) |
protected void |
writeCreationTimestampFile()
Creates the file that represents the creation timestamp of this Lucene
index if relevant
|
void |
writeDocument(org.apache.lucene.document.Document ldoc,
boolean batchIndex)
Stores a Lucene document within the database.
|
void |
writeDocument(org.apache.lucene.document.Document ldoc,
boolean batchIndex,
boolean autoOptimize)
Stores a Lucene document within the database.
|
void |
writeLastModificationTimestampFile()
Updates the date of the last modification timestamp of this Lucene index
Updates the date of the last modification timestamp of this Lucene
index.
|
void |
writeLastModificationTimestampFile(boolean create)
Deprecated.
Use
writeCreationTimestampFile() instead. |
delete, delete, delete, delete, finalize, getFSDirectory, getFSDirectory, getIndexPath, getWriter, getWriter, init, initToSax, initVolatileObjectsToSax, isUsingCompoundFiles, recycleSearcher, search, search, size, verifyIndex, write, writeLuceneDataconfigureDescription, contextualize, enableLogging, getBaseAttributes, getConfiguration, getContext, getDescription, getEncoding, getId, getLocale, getLog, getServiceManager, getXmlLang, service, setDescription, setEncoding, setId, setLocale, setUpSdxObject, setUpSdxObject, setXmlLang, verifyConfigurationResourcesclone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetId, setIdgetDescription, setDescriptiongetEncoding, setEncodinggetLocale, getXmlLang, setLocale, setXmlLangpublic java.lang.String CURRENT_INDEX_DIR
protected java.util.Date creationTimestamp
protected long lastModificationTimestamp
protected java.io.File lastModFile
public static final int ACTION_ADD_DOCUMENT
public static final int DEFAULT_MAX_FIELD_LENGTH
public static final int DEFAULT_MAX_MERGE_DOCS
public static final int DEFAULT_MERGE_FACTOR
public LuceneIndex(java.io.File dir,
java.lang.String host,
java.lang.Integer port,
java.lang.String appId,
java.lang.String dbId)
throws SDXException
dir - A directory where the index is kept.host - port - appId - dbId - SDXExceptionpublic LuceneIndex(java.io.File dir,
java.lang.String host,
java.lang.Integer port,
java.lang.String appId,
java.lang.String dbId,
boolean useCompoundFiles)
throws SDXException
dir - host - port - appId - dbId - useCompoundFiles - SDXExceptionpublic LuceneIndex(LuceneIndex parentIndex, java.io.File dir)
parentIndex - dir - public LuceneIndex(LuceneIndex parentIndex)
parentIndex - public void configure(org.apache.avalon.framework.configuration.Configuration configuration)
throws org.apache.avalon.framework.configuration.ConfigurationException
configure in interface org.apache.avalon.framework.configuration.Configurableconfigure in class AbstractSdxObjectorg.apache.avalon.framework.configuration.ConfigurationExceptionpublic void init()
throws SDXException
It the index exists, nothing is done here. If it is doesn't exist, it will be created.
SDXExceptionprotected void writeCreationTimestampFile()
public void indexModified()
throws SDXException
SDXExceptionpublic void indexModified(boolean createLastModficationTimestampFile)
throws SDXException
indexModified() instead.SDXExceptionprotected void setDocCount(int i)
public int docCount()
public void writeLastModificationTimestampFile()
Updates the date of the last modification timestamp of this Lucene index. If the file does not exist, creates this file.
public void writeLastModificationTimestampFile(boolean create)
writeCreationTimestampFile() instead.public int getFieldType(java.lang.String name)
name - The name of the field for which the type is desired.public java.util.Locale getLocale(java.lang.String name)
name - The name of the field for which the Locale is desired.public Field getDefaultField()
public Field getField(java.lang.String name)
name - The name of the field for which the Field is desired.public MetaAnalyzer getMetaAnalyzer()
public void setMetaAnalyzer(MetaAnalyzer mAnalyzer) throws SDXException
mAnalyzer - A MetaAnalyzer object containing a FieldList object for this index.SDXExceptionpublic void writeDocument(org.apache.lucene.document.Document ldoc,
boolean batchIndex)
throws SDXException
ldoc - The Lucene document to store.batchIndex - Indicates wheter a tempBatch index is taking place or not. Useful for efficiency of index optimizationsSDXExceptionpublic void writeDocument(org.apache.lucene.document.Document ldoc,
boolean batchIndex,
boolean autoOptimize)
throws SDXException
ldoc - The Lucene document to store.batchIndex - Indicates wheter a tempBatch index is taking place or not. Useful for efficiency of index optimizationsautoOptimize - Is the DocumentBase autoOptimize ?SDXExceptionpublic void recycleLuceneIndexSearcher()
throws SDXException
SDXExceptionpublic void recycleIndexReader()
throws SDXException
SDXExceptionpublic void deleteDocument(java.lang.String docId)
throws SDXException
docId - The document's id.SDXExceptionpublic QueryParser getQueryParser() throws java.io.IOException, SDXException
java.io.IOExceptionSDXExceptionpublic java.lang.String getRemoteIndexName()
public void freeResources()
throws java.io.IOException
freeResources in class LuceneDataStorejava.io.IOException - Lucene IOExceptionspublic void setParameters(LuceneIndexParameters params)
params - The relevant parameters for this lucene index.protected org.apache.lucene.index.IndexWriter getWriter(org.apache.lucene.store.Directory directory)
throws java.io.IOException
getWriter in class LuceneDataStoredirectory - The lucene directory for which the writer is desiredjava.io.IOExceptionprotected org.apache.lucene.index.IndexWriter getWriter(org.apache.lucene.store.Directory directory,
boolean create)
throws java.io.IOException
getWriter in class LuceneDataStorejava.io.IOExceptionpublic org.apache.lucene.search.Searchable getSearcher()
Ensures we have a correct Lucene searcher for this index. For that, we ensure that this index has not been modified since the last initialization of the current searcher. If so, we have to recycle the searcher.
getSearcher in class LuceneDataStorepublic org.apache.lucene.search.Searchable getSearcher(boolean automaticRecycle)
public org.apache.lucene.index.IndexReader getReader()
throws SDXException
Ensures we have a correct Lucene reader for this index. For that, we ensure that this index has not been modified since the last initialization of the current reader. If so, we have to recycle the reader.
getReader in class LuceneDataStoreSDXExceptionpublic org.apache.lucene.index.IndexReader getReader(boolean automaticRecycle)
throws SDXException
SDXExceptionpublic void recycleSearcherReader()
public java.lang.String getFieldValue(IndexableDocument doc, java.lang.String fieldName) throws SDXException
doc - The Lucene documentfieldName - The name of the fieldSDXExceptionpublic java.util.Date getCreationDate()
public java.util.Date getLastModificationDate()
Returns the the last modification timestamp of this Lucene index as a Date.
public long getLastModificationTimestamp()
public void toSAX(org.xml.sax.ContentHandler hdl)
throws org.xml.sax.SAXException
toSAX in interface org.apache.excalibur.xml.sax.XMLizabletoSAX in class AbstractSdxObjectorg.xml.sax.SAXExceptionprotected java.lang.String getClassNameSuffix()
AbstractSdxObjectgetClassNameSuffix in class AbstractSdxObjectpublic void optimize()
throws SDXException
optimize in class LuceneDataStoreSDXExceptionpublic void mergeCurrentBatch()
throws SDXException
SDXExceptionpublic void mergeCurrentBatch(boolean optimize)
throws SDXException
SDXExceptionpublic boolean isSubIndex()
public boolean hasBeenModified()
Returns true if this Lucene index has been modified since the last modification timestamp.
public void backup(SaveParameters save_config) throws SDXException
backup in interface Saveablebackup in class LuceneDataStoreSDXExceptionSaveable.backup(fr.gouv.culture.sdx.utils.save.SaveParameters)public void restore(SaveParameters save_config) throws SDXException
restore in interface Saveablerestore in class LuceneDataStoreSDXExceptionSaveable.restore(fr.gouv.culture.sdx.utils.save.SaveParameters)Copyright © 2000-2010 Ministere de la culture et de la communication / AJLSM. All Rights Reserved.