solr中updatehandler commit和dataimporthandler commit之间的区别

时间:2014-09-04 21:47:49

标签: solr commit dataimporthandler

我试图在Solr中调试一些代码,并且很想知道两者之间的区别:

UpdateRequestHandler extends ContentStreamHandlerBase extends RequestHandlerBase

因此UpdateRequestHandlerRequestHandlerBase.handleCommit时使用commit=true

但我无法确定在DataImportHandlercommit=true调用哪种方法。

1 个答案:

答案 0 :(得分:1)

DataImportHandlerline 308 - 313 (for 4.8.1 at least) in org.apache.solr.handler.dataimport.DocBuilder执行提交。根据实施情况,这会调用commit on org.apache.solr.handler.dataimport.SolrWriter,而creates an instance of org.apache.solr.update.CommitUpdateCommand会将org.apache.solr.update.processor.UpdateRequestProcessor发送到{{3}}。

所以流程是:

DataImportHandler
  DocBuilder
    SolrWriter
      CommitUpdateCommand
      UpdateRequestProcessor