2013-04-24 45 views
1

我們需要更新Solr 4的索引,但會得到一些意想不到的結果。我們運行一個使用SolrNet執行AddRange()的C#程序。在這個過程中,我們添加新文檔並嘗試更新現有文檔。如何更新Solr 4中的數據?

我們注意到有些記錄的字段被最新數據更新,而其他記錄仍然顯示舊信息。我們是否應該使用in the documentation指示的信息?

該文件表明我們可以在該字段上設置一個update="set|add|inc"。如果我們想要更新現有記錄,我們是否應該使用set?另外,當我們刪除一個字段,刪除它時,我們是否需要關閉Solr並重新啓動?或者設置null="true"

您能否告訴我們關於更新Solr數據的一些信息?謝謝。

回答

4

列出的文檔參考描述Solr 4中的Atomic Updates的參數,目前SolrNet不支持該參數 - 有關更多詳細信息,請參閱issue 199

在將此支持添加到SolrNet之前,更新索引中文檔的唯一選擇是重新發送整個文檔(C#中的對象)和適當設置的所需更新/刪除的區域。內部Solr會將文檔重新添加到帶有更新字段的索引中。

此外,當您在索引中添加/更新文檔時,對於索引的查詢,這些更改將不可見,直到發出提交爲止。我建議使用CommitWithin選項AddParameters來允許Solr在內部處理這個問題,這在SolrWiki - CommitWithin中有詳細描述。