2013-02-11 8 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를 사용 중이며 노드 값 concate을 원합니다. <c>. "1,2"및 "3,4"가됩니다.

이것을 달성 할 방법이 있습니까?

+0

XPath 2.0을 사용하면 확실히 가능하고 쉽습니다. solr에 바인딩되어 있습니까? (XPath 1.0 * 하위 집합 만 지원하는 것으로 보입니다)? –

답변

0

불가능합니다. XPath가 solr 인입니다.

이 쿼리는 될 것 같지 않습니다 SOLR 어떤 XPath는 2.0 호환 쿼리 프로세서와 함께 작동합니다 :

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

답장을 보내 주셔서 감사합니다. @ Jend Erat, 지금 어떤 버전을 사용하고 있는지 잘 모르겠습니다. 안내해 주시겠습니까? XPath 버전을 확인하는 방법은 무엇입니까? –

+0

이 코드가 작동하면 XPath 2.0이되고 그렇지 않으면 1.0이됩니다. ;) 신속한 검색에서 확실한 정보를 찾을 수는 없지만 XPath 2.0을 광고하지 않으면 지원하지 않습니다. –

+0

나는 그 대담한 부분을 철회했다. :-) Solr은 많은 확장 점을 포함하고 있기 때문에 대부분의 것들은 충분한 팔꿈치 기름으로 가능합니다. –

0

왜 당신이 그들을을 연결해야합니까? Solr은 다중 값 필드를 즉시 사용할 수 있도록 지원합니다.

그러나 정말로 수행하고 싶다면 DIH를 사용하여 multiValued 필드에 넣은 다음 사용자 정의/스크립트 변환기 또는 (Solr 4+) update.chain 및 Update Request Processor으로 연결하십시오. one that can concatenate이 있습니다.

+0

사실, 저는 그 종류의 요구 사항을 가지고 있습니다. (해당 필드에 대해) 여러 개의 콤마로 구분하여 표시해야합니다. –

관련 문제