2014-06-27 48 views
4

我在Solr模式這些字段:如何在solr中將多個字段設置爲uniqueKey?

<fields> 
    <field name="Id" type="string" indexed="true" stored="true" multiValued="false" required="true" /> 
    <field name="IdCategory" type="string" indexed="true" stored="true" multiValued="false" required="true" /> 
    <field name="Rank" type="long" indexed="true" stored="true" multiValued="false" required="true" /> 
    <field name="TypeRank" type="string" indexed="true" stored="true" multiValued="false" required="false" default="category" /> 

    <field name="_version_" type="long" indexed="true" stored="true"/> 
</fields> 

我可以使用2個或3個字段作爲uniqueKeys而不是一個? 當我嘗試:

<uniqueKey>(Id,IdCategory,Rank,TypeRank)</uniqueKey> 

我得到以下錯誤:

org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:架構解析失敗:未知領域'(ID,IdCategory,秩,TypeRank)'。架構文件是/var/solr/Rank/schema.xml

回答

6

您不能以您嘗試執行的方式在唯一鍵中使用2或3(或4)字段。它應該指向單個字符串字段。在編制索引之前,您應該可以使用將所需值的拼接字段生成爲單個唯一字符串。

+0

這不適合我。我得到的錯誤'uniqueKey字段不能是一個copyField的dest# – jakraska

+0

我認爲這是固定在版本4.0? https://issues.apache.org/jira/browse/SOLR-2796 – MattMcKnight

+0

它在4.0中不是「固定的」 - 刪除了這個功能。繼續前進,你必須使用你的solrconfig.xml中的updateRequestProcessorChain https://wiki.apache.org/solr/Deduplication – jakraska

相關問題