【问题标题】:How to validate document before sending to the solr如何在发送到 solr 之前验证文档
【发布时间】:2020-11-14 18:49:32
【问题描述】:

为了将批量文档发送到 solr,我分别生成每个文档,在 solr 机器上发帖只是为了验证该文档,然后将文档放入 Stream(Kafka、Kinesis 或其他)中。有一个读取此流的消费者收集文档并填充主 solr 集群。 我希望能够验证此文档,而不必在第一个 solr 中发布它。有什么方法可以验证生成的文档是否与我的架构兼容?这个验证过程使我的索引速度变慢。如果我将无效文档放入 Stream 中,我将大量丢失许多文档。 今天我正在使用 Solr 6,并在 xml 中生成文档。 谢谢

【问题讨论】:

  • 检索架构并确保所有必填字段都存在,并且字段类型匹配?或者,如果您不想这样做 - 添加批次时会出现错误 - 重新提交批次的前半部分,然后再提交第二部分 - 看看是否有任何错误;然后递归地这样做。如果您的批次中有 1k 份文档,那么 10 个请求应该给您至少一个失败的文档(或者可能更多)。

标签: solr schema


【解决方案1】:

一个想法是在同一台服务器上运行两个 Solr 集合:第一个是您的正常集合,第二个是您仅用于测试的“虚拟”集合。

然后我会一次将 1 个文档发送到虚拟集合,看看 Solr 是否接受它,如果是,则发送到完整集合。对于虚拟集合,请始终一次发送一份文档。为了更加安全,您甚至可以查询该文档的虚拟集合(如果有一些唯一标识符可用)

我也喜欢 MatsLindh 的回答,虽然我可以想象一些边缘情况会通过他的测试,但在遇到 Solr 时仍然失败,但仍然很酷。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多