2013-07-05 65 views
0

我有一組索引在Solr中的字段。Solr字段更新刪除現有索引值

現有的文檔:

<doc> 
    <field name="id">123</field> 
    <field name="created_by">test_user</field> 
    <field name="user_updated"/> 
</doc> 

當我搜索爲Q = CREATED_BY:test_user我找回這個文件。 「created_by」和「user_updated」都被複制到「文本」字段。

我試圖用更新的字段:

http://localhost:8983/solr/update?commit=true -H "Content-Type: text/xml" --data-binary 
'<update> 
    <add> 
    <doc> 
     <field name="id">123</field> 
     <field name="user_updated" update="set">abc</field> 
    </doc> 
    </add> 
</update>' 

這將更新域「user_updated」正確,我找回這個文件,當我搜索「Q = ABC」或「Q = test_user」。但q = created_by:test_user的現有索引結果不再有效。

我是否在這裏做錯了什麼?或者以其他方式使它工作?

+0

是CREATED_BY場標記爲存儲在哪裏?你也有schema.xml中的_version_字段嗎?檢查http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/ – Jayendra

+0

謝謝Jayendra。它被標記爲不存儲。如果我將該字段更改爲Stored,它會正常工作。我想知道我有一些其他的動態字段,只標記爲索引但不存儲。這些字段將因更新而受到影響。有沒有其他方法可以處理這個問題,還是我應該標記這些字段也存儲? – Prahadeesh

+0

添加它作爲答案。接受它,如果它解決了你的問題 – Jayendra

回答

0

是否將created_by字段標記爲已存儲?
你也有schema.xml中的版本字段?
檢查solr-4-0-partial-documents-update
所有需要更新的字段應該被標記爲存儲
動態字段應該不會有問題的,因爲只有它已經存在的領域將更新其餘部分將像爲