使用 UpdateRequestProcessor 链防止 Solr 中的重复
Prevent Duplication in Solr using UpdateRequestProcessor chain
我们正在使用 Solr 来存储通过其他服务接收和摄取的项目。
我目前正在研究一项任务,以避免使用相同的 ID 创建重复的项目。
我不是 Solr 专家,正在尝试从离开公司的人那里接任务。关于如何防止重复的最后一个建议提到,应该可以结合使用在 id 字段上定义唯一 id 和使用 UpdateRequestProcessor 链。我对 UpdateRequestProcessor 链知之甚少,无法了解所采用的方法。我知道最终目标是当一个项目以与现有 ID 相同的 ID 发送到 Solr 时,将执行更新而不是创建。
我查看了有关 UpdateRequestProcessor 链的 Solr 文档。在没有更多背景信息的情况下,这些资源到目前为止并没有太大帮助。我想我会从 Solr 专家那里受益,帮助我入门或为我指明正确的方向。
您不需要涉及 URP。它比那简单得多。如果您的文档 ID(在 schema.xml
中定义为 <uniqueKey>id</uniqueKey>
) 已经是一个唯一的 id,那么,你不需要做任何其他事情。对具有相同 ID 的同一文档编制索引两次将对其进行第二次更新(在后台删除和新插入)。
如果您的 uniqueKey
不是唯一 ID,则只需修改架构(如果需要,还可以使用 Solr 的应用程序),以便它们匹配。
我们正在使用 Solr 来存储通过其他服务接收和摄取的项目。
我目前正在研究一项任务,以避免使用相同的 ID 创建重复的项目。
我不是 Solr 专家,正在尝试从离开公司的人那里接任务。关于如何防止重复的最后一个建议提到,应该可以结合使用在 id 字段上定义唯一 id 和使用 UpdateRequestProcessor 链。我对 UpdateRequestProcessor 链知之甚少,无法了解所采用的方法。我知道最终目标是当一个项目以与现有 ID 相同的 ID 发送到 Solr 时,将执行更新而不是创建。
我查看了有关 UpdateRequestProcessor 链的 Solr 文档。在没有更多背景信息的情况下,这些资源到目前为止并没有太大帮助。我想我会从 Solr 专家那里受益,帮助我入门或为我指明正确的方向。
您不需要涉及 URP。它比那简单得多。如果您的文档 ID(在 schema.xml
中定义为 <uniqueKey>id</uniqueKey>
) 已经是一个唯一的 id,那么,你不需要做任何其他事情。对具有相同 ID 的同一文档编制索引两次将对其进行第二次更新(在后台删除和新插入)。
如果您的 uniqueKey
不是唯一 ID,则只需修改架构(如果需要,还可以使用 Solr 的应用程序),以便它们匹配。