当我运行/ solr / dataimport?command = full-import时它会处理所有文件。但是,当我运行增量导入(/ solr / dataimport?command = delta-import)时,它会正确识别更新的数据(返回“<str name="Total Rows Fetched">1</str>
”)但不处理任何数据(返回“{{1} }“)
我的data-config.xml看起来像这样:
<str name="Total Changed Documents">0</str>
(注意 - 我的concat有单独的原因)
为什么在delta导入提取但不处理时完整导入过程?
答案 0 :(得分:5)
'{$dataimporter.delta.catID}'
,此处catID
应为字段定义中name属性的值。我有同样的问题,然后意识到引用的变量是字段名称...我希望它有效。
答案 1 :(得分:2)
我有同样的问题并且发现deltaImportQuery区分大小写
将我的id列作为“ID”
deltaImportQuery =“从temp中选择id,州,名称,地点,城市 ID ='$ {dih.delta.ID}
答案 2 :(得分:0)
这是因为完全导入将处理数据库中的每个文档。
delta-import仅处理自上次导入任何类型以来已修改过的文档(在您的情况下,由catDate字段指定)。
例如,假设您在2012-09-09 12:15:38进行完全导入。
接下来,您将在2012-09-10 12:15:38进行delta-import。只有拥有catDate&gt;的文档'2012-09-09 12:15:38'将被处理。
这个想法是delta-import是一种维持不断变化的索引的方法,而不必每次都进行完全导入。
答案 3 :(得分:0)
在您的情况下,delta查询工作正常,但delta-import查询失败。
这是因为你已经给出了,
deltaImportQuery =“SELECT CONCAT('c _',catID)ID,catID,catName FROM category WHERE catID = '{$ dataimporter.delta.catID}'”
但它应该是,
deltaImportQuery =“SELECT CONCAT('c _',catID)ID,catID,catName FROM category WHERE catID = '$ {dataimporter.delta.catID}'”