如何在Solr上面对唯一值时添加额外的字段值?

时间:2013-10-01 12:07:24

标签: solr

以下是我配置文件的一部分:

<fields>
        <field name="neoId" stored="true" type="sint" indexed="true" required="true" />
        <field name="skillString" stored="true" type="string" indexed="true" required="true" />
        <field name="skillName" stored="true" type="text" indexed="true" required="true" />


      </fields>

      <uniqueKey>skillString</uniqueKey>
      <defaultSearchField>skillName</defaultSearchField>

添加新文档时,如果skillString存在,则不会添加文档。非常好。但是文档的neoId字段可能与索引上的字段不同。因此,当skillString已经存在时,我想在索引上的文档中添加额外的neoId。有没有办法做到这一点?因为我无法找到方法。我认为首先检查它是否存在,而不是相应地添加文档或更新文档;但是我想在一个查询中做到这一点,因为它将在一个巨大的(40k)循环内并且不断运行。

1 个答案:

答案 0 :(得分:0)

由于在添加新文档时,skillString是您的唯一键,并且唯一键是相同的,Solr将 OVERRIDE 整个文档(即所有字段)。 Solr没有正确的更新操作,所以每次删除并重新插入文档时。

因此,如果您只是更新文档,Solr应自动处理您的要求。