Solr,阻止更新现有文档

标签 solr indexing duplicates document ignore

当文档发送到solr并且该文档已存在于索引中(通过其ID)时,新文档将替换旧文档。

但是我不想自动替换文档。只需忽略并继续下一个即可。如何配置solr。

当然,我可以查询solr来检查它是否已经有文档,但是这对我来说是不利的,因为我进行批量更新,这会使过程复杂化并增加请求量。

那么,有什么方法可以将solr配置为忽略重复项?

最佳答案

在将文档发送到overwrite="false"时,可以禁用具有相同uniqueIndex的文档的自动覆盖,该文档在add元素内指定属性UpdateHandler。看看here

<add overwrite="false">
    <doc>
        <field name="id">id</field>
    </doc>
</add>

无论如何,这允许将重复的文档复制到solr 中,而不是跳过具有相同ID的新文档。我认为这不是您想要的行为。

我认为您应该编写自己的 UpdateHandler UpdateRequestProcessor 或遵循从solr user mailing list获得的建议。

关于Solr,阻止更新现有文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8494923/

相关文章:

performance - 尽管设置了索引,但简单的 MongoDB 查询非常慢

solr - 在 SOLR 中搜索多个字段

java - SOLR 查询在字段开头时无法正常工作

java - 由于初始化失败,SolrCore 'collection1' 不可用。编辑文件并授予权限后

MySQL 索引性能...我应该在这个简单的表上创建索引吗?

MySQL 外键和索引优化

python - 计算列表中非唯一项的总数

awk - 如何使用 awk 重命名重复行?

django - 使用 haystack 进行拼写检查

javascript - 从多维数组中删除重复的元素对