2015-11-04 60 views
0

我正在嘗試尋找排序多值字段的替代方法。在solr中是否有multiValue字段排序解決方法

我知道這個問題已被問及之前的解決方案談論最小和最大但這不是我正在尋找的策略。

有沒有一種方法,我們可以做一個多值的COPY到另一個可用於排序的領域?

例如像這樣:

<field name="cat" type="string" indexed="true" stored="true" 
multiValued="true"/> 

<copyField source="cat" dest="firstcat"/> 

<field name="firstcat" type="string" indexed="true" stored="false" 
multiValued="false"/> 

回答

0

回答我的問題。

上述複製字段不起作用,並且在多值字符串中存在多個值時將引發異常。我的意思是,杜。明顯。

一個工作解決方案是使用solrconfig.xml中的updateRequestProcessorChain配置並將其添加到更新處理程序鏈中。

下面是一個示例:

<updateRequestProcessorChain name="concatFields"> 
    <processor lass="solr.CloneFieldUpdateProcessorFactory"> 
    <str name="source">str1</str> 
    <str name="dest">str2</str> 
    </processor> 
    <processor class="solr.ConcatFieldUpdateProcessorFactory"> 
    <str name="fieldName">str2</str> 
    <str name="delimiter">_</str> 
    </processor> 
    <processor class="solr.CloneFieldUpdateProcessorFactory"> 
    <str name="source">str2</str> 
    <str name="dest">str3</str> 
    </processor> 
    <processor class="solr.LogUpdateProcessorFactory" /> 
    <processor class="solr.RunUpdateProcessorFactory" />  
</updateRequestProcessorChain> 

然後鏈處理器到路徑:

<initParams path="/update/**"> 
<lst name="defaults"> 
<str name="update.chain">concatFields</str> 
</lst> 
</initParams> 
相關問題