solr delta import“fetches”但不“处理”

时间:2012-05-01 20:17:45

标签: mysql solr dataimporthandler

当我运行/ 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导入提取但不处理时完整导入过程?

4 个答案:

答案 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}'