如何在Solr中的多值字段中添加不同的值

9
我有一个名为category的多值字段(也是存储字段),我只需要添加不同的值。
如果我按以下方式进行更新: E02 value2 我会得到两个值为value2的存储记录。我需要在category字段中仅存储/更新不同的值,这是一个多值字段。如何在solr中实现?
谢谢, Jagadesh.
2个回答

6

该功能已于Solr 7.3中添加。

您可以使用add-distinct原子更新操作,而不是add

请参见Jira问题(SOLR-11267)和参考指南中的文档:

add-distinct

如果尚未存在,则将指定的值添加到多值字段中。 可以指定为单个值或列表。


2

在部分文档更新中,可以使用“设置”而不是“添加”来重新创建存储字段。因此,如果您拥有所有字段值,则只需将它们放入Set中,然后重新填充字段即可。由于stored field要求,您拥有重新创建它所需的所有数据。


如果我尝试这样做,是的,value2只保存了一次,但旧值value1会丢失。 - Jagadesh
你需要设置所有之前的加上你自己的,如果它们是不同的。 - Ion Cojocaru
只是澄清一下。如果该字段不是存储字段呢? - Jagadesh
部分更新仅适用于Solr >= 4.0版本,并且存储字段是硬性要求。这里没有什么魔法,Solr需要它来重建(删除和重新索引)底层的Lucene文档,同时增加_version_编号。在旧版本中,您必须手动执行此操作。阅读更多信息,请访问http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/。 - Ion Cojocaru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接