【问题标题】:solr delta import "fetches" but does not "process"solr delta 导入“获取”但不“处理”
【发布时间】:2012-05-01 20:17:44
【问题描述】:

当我运行 /solr/dataimport?command=full-import 时,它会处理所有文档。但是,当我运行增量导入 (/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}'"/>

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

为什么在增量导入获取但不处理时会处理完整的导入?

【问题讨论】:

  • “但不处理任何一个”是什么意思?也许您只需要发出明确的 solr commit 命令?
  • 我的意思是 solr 没有得到更新 - 期间。为什么完全导入会自动提交而 delta-import 不会?顺便说一句,运行命令 /solr/dataimport?command=delta-import&commit=true 仍然不起作用...
  • 您的意思是您在索引中看不到新文档?即使您强制执行commit 操作,这仍然是正确的吗?
  • 你们解决过这个问题吗?我也有同样的问题。
  • 根据我的经验,当它没有发布时,这是主键的配置问题。意思是,我没有输入正确的键。根据我的经验,您不必明确请求提交完整导入或增量。

标签: mysql solr dataimporthandler


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,发现 deltaImportQuery 区分大小写

    将我的 id 列设为“ID”

    deltaImportQuery="select id,state,name,place,city from temp where ID='${dih.delta.ID}

    【讨论】:

      【解决方案3】:

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

      增量导入仅处理自您上次导入任何类型以来已修改的文档(在您的情况下,由 catDate 字段决定)。

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

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

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

      【讨论】:

      • 谢谢。但问题是增量导入根本没有导入任何东西
      【解决方案4】:

      在您的情况下,增量查询工作正常,但您的增量导入查询失败。

      这是因为你给了,

      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}'"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        • 2016-12-01
        • 1970-01-01
        • 2019-04-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多