Package org.apache.solr.update
Class DirectUpdateHandler2
- java.lang.Object
-
- org.apache.solr.update.UpdateHandler
-
- org.apache.solr.update.DirectUpdateHandler2
-
- All Implemented Interfaces:
AutoCloseable
,SolrInfoBean
,SolrMetricProducer
,SolrCoreState.IndexWriterCloser
public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState.IndexWriterCloser, SolrMetricProducer
DirectUpdateHandler2
implements an UpdateHandler where documents are added directly to the main Lucene index as opposed to adding to a separate smaller index.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.solr.core.SolrInfoBean
SolrInfoBean.Category, SolrInfoBean.Group
-
-
Field Summary
Fields Modifier and Type Field Description protected CommitTracker
commitTracker
protected boolean
commitWithinSoftCommit
protected CommitTracker
softCommitTracker
protected SolrCoreState
solrCoreState
-
Fields inherited from class org.apache.solr.update.UpdateHandler
commitCallbacks, core, idField, idFieldType, optimizeCallbacks, softCommitCallbacks, solrMetricsContext, ulog
-
-
Constructor Summary
Constructors Constructor Description DirectUpdateHandler2(SolrCore core)
DirectUpdateHandler2(SolrCore core, UpdateHandler updateHandler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
addDoc(AddUpdateCommand cmd)
void
clearIndex()
void
close()
Implementations should always callSolrMetricProducer.super.close()
to ensure that metrics with the same life-cycle as this component are properly unregistered.void
closeWriter(org.apache.lucene.index.IndexWriter writer)
void
commit(CommitUpdateCommand cmd)
void
delete(DeleteUpdateCommand cmd)
void
deleteByQuery(DeleteUpdateCommand cmd)
CommitTracker
getCommitTracker()
String
getDescription()
Simple one or two line descriptionString
getName()
Simple common usage name, e.g.CommitTracker
getSoftCommitTracker()
SolrCoreState
getSolrCoreState()
UpdateLog
getUpdateLog()
void
initializeMetrics(SolrMetricsContext parentContext, String scope)
Initialize metrics specific to this producer.int
mergeIndexes(MergeIndexesCommand cmd)
void
newIndexWriter(boolean rollback)
Called when the Writer should be opened again - eg when replication replaces all of the index files.void
prepareCommit(CommitUpdateCommand cmd)
void
rollback(RollbackUpdateCommand cmd)
protected void
rollbackWriter()
protected boolean
shouldCommit(CommitUpdateCommand cmd, org.apache.lucene.index.IndexWriter writer)
Determines whether the commit command should effectively trigger a commit on the index writer.void
split(SplitIndexCommand cmd)
-
Methods inherited from class org.apache.solr.update.UpdateHandler
callPostCommitCallbacks, callPostOptimizeCallbacks, callPostSoftCommitCallbacks, getCategory, getSolrMetricsContext, informEventListeners, initUlog, registerCommitCallback, registerOptimizeCallback, registerSoftCommitCallback
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.metrics.SolrMetricProducer
getSolrMetricsContext
-
-
-
-
Field Detail
-
solrCoreState
protected final SolrCoreState solrCoreState
-
commitTracker
protected final CommitTracker commitTracker
-
softCommitTracker
protected final CommitTracker softCommitTracker
-
commitWithinSoftCommit
protected boolean commitWithinSoftCommit
-
-
Constructor Detail
-
DirectUpdateHandler2
public DirectUpdateHandler2(SolrCore core)
-
DirectUpdateHandler2
public DirectUpdateHandler2(SolrCore core, UpdateHandler updateHandler)
-
-
Method Detail
-
initializeMetrics
public void initializeMetrics(SolrMetricsContext parentContext, String scope)
Description copied from interface:SolrMetricProducer
Initialize metrics specific to this producer.- Specified by:
initializeMetrics
in interfaceSolrMetricProducer
- Parameters:
parentContext
- parent metrics context. If this component has the same life-cycle as the parent it can simply use the parent context, otherwise it should obtain a child context usingSolrMetricsContext.getChildContext(Object)
passingthis
as the child object.scope
- component scope
-
rollbackWriter
protected void rollbackWriter() throws IOException
- Throws:
IOException
-
addDoc
public int addDoc(AddUpdateCommand cmd) throws IOException
- Specified by:
addDoc
in classUpdateHandler
- Throws:
IOException
-
delete
public void delete(DeleteUpdateCommand cmd) throws IOException
- Specified by:
delete
in classUpdateHandler
- Throws:
IOException
-
clearIndex
public void clearIndex() throws IOException
- Throws:
IOException
-
deleteByQuery
public void deleteByQuery(DeleteUpdateCommand cmd) throws IOException
- Specified by:
deleteByQuery
in classUpdateHandler
- Throws:
IOException
-
mergeIndexes
public int mergeIndexes(MergeIndexesCommand cmd) throws IOException
- Specified by:
mergeIndexes
in classUpdateHandler
- Throws:
IOException
-
prepareCommit
public void prepareCommit(CommitUpdateCommand cmd) throws IOException
- Throws:
IOException
-
commit
public void commit(CommitUpdateCommand cmd) throws IOException
- Specified by:
commit
in classUpdateHandler
- Throws:
IOException
-
shouldCommit
protected boolean shouldCommit(CommitUpdateCommand cmd, org.apache.lucene.index.IndexWriter writer) throws IOException
Determines whether the commit command should effectively trigger a commit on the index writer. This method is called with the commit lock and is the last step before effectively callingIndexWriter.commit()
.- Throws:
IOException
-
newIndexWriter
public void newIndexWriter(boolean rollback) throws IOException
Description copied from class:UpdateHandler
Called when the Writer should be opened again - eg when replication replaces all of the index files.- Specified by:
newIndexWriter
in classUpdateHandler
- Parameters:
rollback
- IndexWriter if true else close- Throws:
IOException
- If there is a low-level I/O error.
-
rollback
public void rollback(RollbackUpdateCommand cmd) throws IOException
- Specified by:
rollback
in classUpdateHandler
- Throws:
IOException
- Since:
- Solr 1.4
-
getUpdateLog
public UpdateLog getUpdateLog()
- Specified by:
getUpdateLog
in classUpdateHandler
-
close
public void close() throws IOException
Description copied from interface:SolrMetricProducer
Implementations should always callSolrMetricProducer.super.close()
to ensure that metrics with the same life-cycle as this component are properly unregistered. This prevents obscure memory leaks.from: https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html While this interface method is declared to throw Exception, implementers are strongly encouraged to declare concrete implementations of the close method to throw more specific exceptions, or to throw no exception at all if the close operation cannot fail.
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceSolrMetricProducer
- Throws:
IOException
-
closeWriter
public void closeWriter(org.apache.lucene.index.IndexWriter writer) throws IOException
- Specified by:
closeWriter
in interfaceSolrCoreState.IndexWriterCloser
- Throws:
IOException
-
split
public void split(SplitIndexCommand cmd) throws IOException
- Specified by:
split
in classUpdateHandler
- Throws:
IOException
-
getName
public String getName()
Description copied from interface:SolrInfoBean
Simple common usage name, e.g. BasicQueryHandler, or fully qualified class name.- Specified by:
getName
in interfaceSolrInfoBean
-
getDescription
public String getDescription()
Description copied from interface:SolrInfoBean
Simple one or two line description- Specified by:
getDescription
in interfaceSolrInfoBean
-
getSolrCoreState
public SolrCoreState getSolrCoreState()
- Specified by:
getSolrCoreState
in classUpdateHandler
-
getCommitTracker
public CommitTracker getCommitTracker()
-
getSoftCommitTracker
public CommitTracker getSoftCommitTracker()
-
-