Solr,阻止更新现有文档
Posted
技术标签:
【中文标题】Solr,阻止更新现有文档【英文标题】:Solr, block updating of existing document 【发布时间】:2012-01-19 15:55:15 【问题描述】:当一个文档被发送到 solr 并且这样的文档已经存在于索引中(通过它的 ID)然后新的替换旧的。
但我不想自动替换文档。忽略并继续下一个。如何配置 solr。
当然,我可以查询 solr 以检查它是否已经有文档,但这对我不利,因为我进行批量更新,这会使过程复杂化并增加请求量。
那么有什么方法可以配置 solr 忽略重复项?
【问题讨论】:
你读过我更新的答案吗?有用吗? 是的,它很有用。感谢您的关注和帮助。我通过实现丢弃新现有文档的简单更新处理程序解决了这个问题。 【参考方案1】:当您将文档发送到UpdateHandler
时,您可以禁用自动覆盖具有相同唯一索引的文档,并在添加元素中指定属性overwrite="false"
。看看here。
<add overwrite="false">
<doc>
<field name="id">id</field>
</doc>
</add>
无论如何这允许将重复的文档放入 solr,而不是跳过与现有文档具有相同 ID 的新文档。我认为这不是您想要的行为。
我认为您应该编写自己的 UpdateHandler
或 UpdateRequestProcessor
或遵循您从 solr user mailing list 获得的建议。
【讨论】:
你能给我一个配置的例子吗?我不知道把这个设置放在哪里。 它实际上不起作用。我正在使用 solr 3.1.0 并使用 solj 库更新文档。尝试了两种变体。可能是什么情况? 很高兴知道您正在使用 solrj。你是用xml还是二进制格式? 可能是二进制格式。我还将这些设置放入 javabin 请求处理程序,但没有帮助。所以我被困住了。 Alos 我曾尝试将此参数添加到 java 中的请求中,但它也无济于事。 真的很抱歉,我的第一个答案是错误的,我误解了文档。我根据我测试的内容更正了它。再次抱歉。以上是关于Solr,阻止更新现有文档的主要内容,如果未能解决你的问题,请参考以下文章