solr delta import"fetches"但不"处理"

YWS*_*WSW 5 mysql solr dataimporthandler

当我运行/ solr/dataimport?command = full-import时它会处理所有文件.但是,当我运行delta导入(/ solr/dataimport?command = delta-import)时,它正确识别更新的数据(返回" <str name="Total Rows Fetched">1</str>")但不处理任何数据(返回" <str name="Total Changed Documents">0</str>")

我的data-config.xml看起来像这样:

<entity name="category" pk="catID" 
query="SELECT CONCAT('c_',catID) ID, catID, catName FROM category" 
deltaImportQuery="SELECT CONCAT('c_',catID) ID, catID, catName FROM category WHERE catID = '{$dataimporter.delta.catID}'" 
deltaQuery="SELECT catID FROM category WHERE catDate &gt; '${dataimporter.last_index_time}'"/>
Run Code Online (Sandbox Code Playgroud)

(注意 - 我的concat有一个独立的原因)

为什么在delta导入获取但不处理时完整导入过程?

小智 5

'{$dataimporter.delta.catID}',这里catID应该是字段定义中name属性的值.我有同样的问题,然后意识到引用的变量是字段名称...我希望它的工作原理.


lok*_*pse 0

这是因为完全导入将处理数据库中的每个文档。

增量导入仅处理自上次导入以来已修改的文档(在您的情况下,由 catDate 字段指示)。

例如,假设您在 2012-09-09 12:15:38 进行了完全导入。

接下来,您在 2012-09-10 12:15:38 执行增量导入。仅处理 catDate > '2012-09-09 12:15:38' 的文档。

这个想法是,增量导入是一种维护不断变化的索引的方法,而不必每次都进行完全导入。