public class DefaultIndexingContext extends AbstractIndexingContext
IndexingContext
implementation.Modifier and Type | Field and Description |
---|---|
private static org.apache.lucene.index.Term |
DESCRIPTOR_TERM |
static java.lang.String |
FLD_DESCRIPTOR |
static java.lang.String |
FLD_DESCRIPTOR_CONTENTS |
static java.lang.String |
FLD_IDXINFO |
private GavCalculator |
gavCalculator
Currently nexus-indexer knows only M2 reposes
|
private java.lang.String |
id |
private static java.lang.String |
INDEX_DIRECTORY
A standard location for indices served up by a webserver.
|
private java.util.List<? extends IndexCreator> |
indexCreators |
private org.apache.lucene.store.Directory |
indexDirectory |
private java.io.File |
indexDirectoryFile |
private java.lang.String |
indexUpdateUrl |
private NexusIndexWriter |
indexWriter |
private java.io.File |
repository |
private java.lang.String |
repositoryId |
private java.lang.String |
repositoryUrl |
private boolean |
searchable |
private org.apache.lucene.search.SearcherManager |
searcherManager |
private java.util.Date |
timestamp |
static java.lang.String |
VERSION |
INDEX_CHAIN_ID, INDEX_CHUNK_COUNTER, INDEX_CHUNK_PREFIX, INDEX_FILE_PREFIX, INDEX_ID, INDEX_LEGACY_TIMESTAMP, INDEX_PACKER_PROPERTIES_FILE, INDEX_PROPERTY_PREFIX, INDEX_REMOTE_PROPERTIES_FILE, INDEX_TIME_DAY_FORMAT, INDEX_TIME_FORMAT, INDEX_TIMESTAMP, INDEX_UPDATER_PROPERTIES_FILE
Modifier | Constructor and Description |
---|---|
|
DefaultIndexingContext(java.lang.String id,
java.lang.String repositoryId,
java.io.File repository,
org.apache.lucene.store.Directory indexDirectory,
java.lang.String repositoryUrl,
java.lang.String indexUpdateUrl,
java.util.List<? extends IndexCreator> indexCreators,
boolean reclaimIndex)
Deprecated.
|
|
DefaultIndexingContext(java.lang.String id,
java.lang.String repositoryId,
java.io.File repository,
java.io.File indexDirectoryFile,
java.lang.String repositoryUrl,
java.lang.String indexUpdateUrl,
java.util.List<? extends IndexCreator> indexCreators,
boolean reclaimIndex) |
private |
DefaultIndexingContext(java.lang.String id,
java.lang.String repositoryId,
java.io.File repository,
java.lang.String repositoryUrl,
java.lang.String indexUpdateUrl,
java.util.List<? extends IndexCreator> indexCreators,
org.apache.lucene.store.Directory indexDirectory,
boolean reclaimIndex) |
Modifier and Type | Method and Description |
---|---|
org.apache.lucene.search.IndexSearcher |
acquireIndexSearcher()
Acquires a fresh instance of
IndexSearcher . |
private void |
checkAndUpdateIndexDescriptor(boolean reclaimIndex) |
void |
close(boolean deleteFiles)
Shuts down this context.
|
private void |
closeReaders() |
void |
commit()
Commits changes to context, eventually refreshing readers/searchers too.
|
protected org.apache.lucene.document.Document |
createGroupsDocument(java.util.Collection<java.lang.String> groups,
java.lang.String field,
java.lang.String fieldValue,
java.lang.String listField) |
private void |
deleteIndexFiles(boolean full) |
java.util.Set<java.lang.String> |
getAllGroups()
Gets all group names stored in the current indexing context
|
org.apache.lucene.analysis.Analyzer |
getAnalyzer()
Returns the Lucene Analyzer of this context used for by IndexWriter and IndexSearcher.
|
GavCalculator |
getGavCalculator()
Returns the GavCalculator for this Context.
|
protected java.util.Set<java.lang.String> |
getGroups(java.lang.String field,
java.lang.String filedValue,
java.lang.String listField) |
java.lang.String |
getId()
Returns this indexing context id.
|
java.util.List<IndexCreator> |
getIndexCreators()
List of IndexCreators used in this context.
|
org.apache.lucene.store.Directory |
getIndexDirectory() |
java.io.File |
getIndexDirectoryFile() |
java.lang.String |
getIndexUpdateUrl()
Returns url for the index update
|
org.apache.lucene.index.IndexWriter |
getIndexWriter()
Returns the Lucene IndexWriter (thread safe, shared instance) of this context.
|
java.io.File |
getRepository()
Returns location for the local repository.
|
java.lang.String |
getRepositoryId()
Returns repository id.
|
java.lang.String |
getRepositoryUrl()
Returns public repository url.
|
java.util.Set<java.lang.String> |
getRootGroups()
Gets root group names stored in the current indexing context
|
int |
getSize()
Returns a number that represents the "size" useful for doing comparisons between contexts (which one has more
data indexed?).
|
java.util.Date |
getTimestamp()
Returns index update time
|
protected org.apache.lucene.index.IndexWriterConfig |
getWriterConfig()
Returns new IndexWriterConfig instance
|
boolean |
isSearchable()
Is the context searchable when doing "non-targeted" searches? Ie.
|
void |
merge(org.apache.lucene.store.Directory directory)
Merges content of given Lucene directory with this context.
|
void |
merge(org.apache.lucene.store.Directory directory,
DocumentFilter filter)
Merges content of given Lucene directory with this context, but filters out the unwanted ones.
|
protected void |
openAndWarmup() |
void |
optimize()
Optimizes index.
|
private void |
prepareCleanIndex(boolean deleteExisting) |
private void |
prepareIndex(boolean reclaimIndex) |
void |
purge()
Purge (cleans) the context, deletes/empties the index and restores the context to new/empty state.
|
void |
rebuildGroups()
Rebuilds stored group names from the index
|
void |
releaseIndexSearcher(org.apache.lucene.search.IndexSearcher is)
Releases the
IndexSearcher instance. |
void |
replace(org.apache.lucene.store.Directory directory)
Replaces the Lucene index with the one from supplied directory.
|
void |
rollback()
Rolls back changes to context, eventually refreshing readers/searchers too.
|
void |
setAllGroups(java.util.Collection<java.lang.String> groups)
Sets all group names stored in the current indexing context
|
protected void |
setGroups(java.util.Collection<java.lang.String> groups,
java.lang.String groupField,
java.lang.String groupFieldValue,
java.lang.String groupListField) |
void |
setRootGroups(java.util.Collection<java.lang.String> groups)
Sets root group names stored in the current indexing context
|
void |
setSearchable(boolean searchable)
Sets is the context searchable when doing "non-targeted" searches.
|
private void |
storeDescriptor() |
java.lang.String |
toString() |
void |
updateTimestamp() |
void |
updateTimestamp(boolean save) |
void |
updateTimestamp(boolean save,
java.util.Date timestamp) |
isReceivingUpdates
private static final java.lang.String INDEX_DIRECTORY
public static final java.lang.String FLD_DESCRIPTOR
public static final java.lang.String FLD_DESCRIPTOR_CONTENTS
public static final java.lang.String FLD_IDXINFO
public static final java.lang.String VERSION
private static final org.apache.lucene.index.Term DESCRIPTOR_TERM
private org.apache.lucene.store.Directory indexDirectory
private java.io.File indexDirectoryFile
private java.lang.String id
private boolean searchable
private java.lang.String repositoryId
private java.io.File repository
private java.lang.String repositoryUrl
private java.lang.String indexUpdateUrl
private NexusIndexWriter indexWriter
private org.apache.lucene.search.SearcherManager searcherManager
private java.util.Date timestamp
private java.util.List<? extends IndexCreator> indexCreators
private GavCalculator gavCalculator
XXX move this into a concrete Scanner implementation
private DefaultIndexingContext(java.lang.String id, java.lang.String repositoryId, java.io.File repository, java.lang.String repositoryUrl, java.lang.String indexUpdateUrl, java.util.List<? extends IndexCreator> indexCreators, org.apache.lucene.store.Directory indexDirectory, boolean reclaimIndex) throws ExistingLuceneIndexMismatchException, java.io.IOException
ExistingLuceneIndexMismatchException
java.io.IOException
public DefaultIndexingContext(java.lang.String id, java.lang.String repositoryId, java.io.File repository, java.io.File indexDirectoryFile, java.lang.String repositoryUrl, java.lang.String indexUpdateUrl, java.util.List<? extends IndexCreator> indexCreators, boolean reclaimIndex) throws java.io.IOException, ExistingLuceneIndexMismatchException
java.io.IOException
ExistingLuceneIndexMismatchException
@Deprecated public DefaultIndexingContext(java.lang.String id, java.lang.String repositoryId, java.io.File repository, org.apache.lucene.store.Directory indexDirectory, java.lang.String repositoryUrl, java.lang.String indexUpdateUrl, java.util.List<? extends IndexCreator> indexCreators, boolean reclaimIndex) throws java.io.IOException, ExistingLuceneIndexMismatchException
java.io.IOException
ExistingLuceneIndexMismatchException
public org.apache.lucene.store.Directory getIndexDirectory()
public java.io.File getIndexDirectoryFile()
private void prepareIndex(boolean reclaimIndex) throws java.io.IOException, ExistingLuceneIndexMismatchException
java.io.IOException
ExistingLuceneIndexMismatchException
private void prepareCleanIndex(boolean deleteExisting) throws java.io.IOException
java.io.IOException
private void checkAndUpdateIndexDescriptor(boolean reclaimIndex) throws java.io.IOException, ExistingLuceneIndexMismatchException
java.io.IOException
ExistingLuceneIndexMismatchException
private void storeDescriptor() throws java.io.IOException
java.io.IOException
private void deleteIndexFiles(boolean full) throws java.io.IOException
java.io.IOException
public boolean isSearchable()
IndexingContext
public void setSearchable(boolean searchable)
IndexingContext
public java.lang.String getId()
IndexingContext
public void updateTimestamp() throws java.io.IOException
java.io.IOException
public void updateTimestamp(boolean save) throws java.io.IOException
java.io.IOException
public void updateTimestamp(boolean save, java.util.Date timestamp) throws java.io.IOException
java.io.IOException
public java.util.Date getTimestamp()
IndexingContext
public int getSize() throws java.io.IOException
IndexingContext
java.io.IOException
public java.lang.String getRepositoryId()
IndexingContext
public java.io.File getRepository()
IndexingContext
public java.lang.String getRepositoryUrl()
IndexingContext
public java.lang.String getIndexUpdateUrl()
IndexingContext
public org.apache.lucene.analysis.Analyzer getAnalyzer()
IndexingContext
protected void openAndWarmup() throws java.io.IOException
java.io.IOException
protected org.apache.lucene.index.IndexWriterConfig getWriterConfig()
public org.apache.lucene.index.IndexWriter getIndexWriter() throws java.io.IOException
IndexingContext
java.io.IOException
public org.apache.lucene.search.IndexSearcher acquireIndexSearcher() throws java.io.IOException
IndexingContext
IndexSearcher
. You have to release the received instance with
IndexingContext.releaseIndexSearcher(IndexSearcher)
otherwise you are about to introduce leak.java.io.IOException
public void releaseIndexSearcher(org.apache.lucene.search.IndexSearcher is) throws java.io.IOException
IndexingContext
IndexSearcher
instance.java.io.IOException
public void commit() throws java.io.IOException
IndexingContext
java.io.IOException
public void rollback() throws java.io.IOException
IndexingContext
java.io.IOException
public void optimize() throws org.apache.lucene.index.CorruptIndexException, java.io.IOException
IndexingContext
org.apache.lucene.index.CorruptIndexException
java.io.IOException
public void close(boolean deleteFiles) throws java.io.IOException
IndexingContext
java.io.IOException
public void purge() throws java.io.IOException
IndexingContext
java.io.IOException
public void replace(org.apache.lucene.store.Directory directory) throws java.io.IOException
IndexingContext
java.io.IOException
public void merge(org.apache.lucene.store.Directory directory) throws java.io.IOException
IndexingContext
directory
- - the directory to mergejava.io.IOException
public void merge(org.apache.lucene.store.Directory directory, DocumentFilter filter) throws java.io.IOException
IndexingContext
directory
- - the directory to mergejava.io.IOException
private void closeReaders() throws org.apache.lucene.index.CorruptIndexException, java.io.IOException
org.apache.lucene.index.CorruptIndexException
java.io.IOException
public GavCalculator getGavCalculator()
IndexingContext
public java.util.List<IndexCreator> getIndexCreators()
IndexingContext
public void rebuildGroups() throws java.io.IOException
IndexingContext
java.io.IOException
public java.util.Set<java.lang.String> getAllGroups() throws java.io.IOException
IndexingContext
java.io.IOException
public void setAllGroups(java.util.Collection<java.lang.String> groups) throws java.io.IOException
IndexingContext
java.io.IOException
public java.util.Set<java.lang.String> getRootGroups() throws java.io.IOException
IndexingContext
java.io.IOException
public void setRootGroups(java.util.Collection<java.lang.String> groups) throws java.io.IOException
IndexingContext
java.io.IOException
protected java.util.Set<java.lang.String> getGroups(java.lang.String field, java.lang.String filedValue, java.lang.String listField) throws java.io.IOException, org.apache.lucene.index.CorruptIndexException
java.io.IOException
org.apache.lucene.index.CorruptIndexException
protected void setGroups(java.util.Collection<java.lang.String> groups, java.lang.String groupField, java.lang.String groupFieldValue, java.lang.String groupListField) throws java.io.IOException, org.apache.lucene.index.CorruptIndexException
java.io.IOException
org.apache.lucene.index.CorruptIndexException
protected org.apache.lucene.document.Document createGroupsDocument(java.util.Collection<java.lang.String> groups, java.lang.String field, java.lang.String fieldValue, java.lang.String listField)
public java.lang.String toString()
toString
in class java.lang.Object