1

我们需要更新 Solr 4 的索引,但得到了一些意想不到的结果。我们运行一个使用 SolrNet 执行 AddRange() 的 C# 程序。在此过程中,我们正在添加新文档并尝试更新现有文档。

我们注意到一些记录的字段会使用最新数据进行更新,而其他记录的字段仍会显示旧信息。我们应该使用文档中指示的信息吗?

文档表明我们可以update="set|add|inc"在该字段上设置一个。如果我们希望更新现有记录,我们应该使用set? 另外,当我们删除一个字段时,要删除它,我们是否需要关闭 Solr 并重新启动?还是设置null="true"

您能否向我们指出一些有关更新 Solr 数据的好信息?谢谢你。

4

1 回答 1

4

您列出的文档参考描述了 Solr 4 中原子更新的参数,目前 SolrNet 不支持该参数 - 有关更多详细信息,请参阅问题 199

在向 SolrNet 添加此支持之前,更新索引中的文档的唯一选择是重新发送整个文档(C# 中的对象),并适当设置所需的更新/删除字段。在内部,Solr 将使用更新的字段将文档重新添加到索引中。

此外,当您在索引中添加/更新文档时,在发出提交之前,这些更改对于针对索引的查询将不可见。我建议使用AddParametersCommitWithin选项来允许 Solr 在内部处理这个问题,这在SolrWiki - CommitWithin中有详细描述。

于 2013-04-24T12:15:38.513 回答