2013-10-01 36 views
0

下面是我的配置文件的一部分:如何在面對唯一值時在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)循環中並且不斷運行。

回答

0

由於skillString是您添加新文檔時的唯一鍵,而且唯一鍵與您的整個文檔(即所有字段)相同。 Solr沒有正確的更新操作,所以每次刪除並重新插入文檔。

因此,如果您只是更新文檔,Solr應自動處理您的需求。

相關問題