2013-02-11 79 views
0

我有這樣的xml。Solr從字段中獲取逗號分隔值

<Root> 
    <a1> 
    <a>test</a> 
    <b> 
     <c>1</c> 
     <c>2</c> 
    </b> 
    </a1> 

    <a1> 
    <a>test2</a> 
    <b> 
     <c>3</c> 
     <c>4</c> 
    </b> 
    </a1> 
</Root> 

我將從這個XML導入數據到solr。

我正在使用XPathEntityProcessor,我想連接節點的值<c>。 這將導致「1,2」和「3,4」。

有什麼辦法可以達到這個目的嗎?

+0

使用XPath 2.0肯定是可行和容易的,你是否一定會solr(甚至似乎只支持XPath 1.0 * subset *)? – 2013-02-11 13:56:54

回答

0

它是不可能與XPath在solr。

此查詢將與任何XPath 2.0兼容的查詢處理器,似乎這Solr的不被工作:

//b/string-join(c/text(), ",") 
+0

感謝@Jend Erat,對於您的回覆,現在我不確定我正在使用哪個版本,您能指導我如何檢查XPath的版本嗎? – 2013-02-11 14:35:07

+0

如果此代碼有效,它將是XPath 2.0,否則爲1.0。 ;)在快速搜索中我找不到任何明確的信息,但是如果他們沒有宣傳XPath 2.0,他們將不會支持它。 – 2013-02-11 14:37:31

+0

我會收回那個大膽的部分。 :-)大部分的事情都可以用足夠的手肘潤滑脂來完成,因爲Solr包含了很多延伸點。 – 2013-02-11 15:49:29

0

爲什麼你需要將它們串聯? Solr支持多值字段,您只需要以這種方式聲明它們。但是,如果你確實想要做,可以使用DIH將它們放入multiValued字段,然後用自定義/腳本變換器或(Solr 4+)update.chain和Update Request Processor連接它們。有one that can concatenate

+0

其實,我有這樣的要求,對於特定領域(多值),我需要以逗號分隔顯示它們。 – 2013-02-12 05:16:39