Java 使用相同的唯一密钥复制文档

Java 使用相同的唯一密钥复制文档,java,solr,Java,Solr,对于特定的Solr应用程序,我需要丢弃重复的结果。我在schema.xml中将字段id设置为唯一键,如下所示: <uniqueKey>id</uniqueKey> 明确地说,我不想更新,也不想创建新文档我想丢弃新文档。将id字段计算为其他几个字段内容的散列。因此,如果已经存在具有相同哈希(id)的另一个字段,我不想更新它(我需要始终保留相同哈希的最旧文档),也不想创建新记录(dupe)。我只是想丢弃新的文档 我正在寻找类似于将忽略插入SQL语句的行为。请参阅更新处理程序

对于特定的Solr应用程序,我需要丢弃重复的结果。我在schema.xml中将字段
id
设置为唯一键,如下所示:

<uniqueKey>id</uniqueKey>
明确地说,我不想更新,也不想创建新文档我想丢弃新文档。
id
字段计算为其他几个字段内容的散列。因此,如果已经存在具有相同哈希(id)的另一个字段,我不想更新它(我需要始终保留相同哈希的最旧文档),也不想创建新记录(dupe)。我只是想丢弃新的文档


我正在寻找类似于将忽略插入SQL语句的行为。

请参阅更新处理程序上可以配置的,以正确处理此情况。

此行为是由于使用overwrite=false造成的。你明确地要求你看到的行为

这里记录了这一点:

“指示是否应检查唯一键约束以覆盖同一文档的早期版本”

因此,如果overwrite为“true”,则检查这是否覆盖了现有文档,如果存在现有文档,则将其删除。如果overwrite为false,则不进行检查,只需假设此文档是唯一的,然后添加新文档即可


如果参数名为“overwriteCheck”,这会更清楚,因为它确实是这样做的

多谢各位。我从重读这个问题中看出,我的意图并不明确。我对问题进行了编辑以澄清:如果新文档是重复的,我需要将其丢弃,类似于
将忽略插入到
中。
<field name="id" type="string" stored="true" indexed="true" multiValued="false" required="true"/>