2014-03-05 1 views
4

구조체가 될 multiValued 필드를 추가해야합니다. 뭔가 같은 :SOLR은 multiValued 필드의 구조와 같은 복잡한 유형을 지원합니까?

class ComplexPhone [ 
    String area; 
    String number; 
    String internal; 
    String type; 
] 

내가 같은 형식으로 JSON에 SOLR에서이 데이터를 수신 할 :

{ 
    "responseHeader": { 
    "status": 0, 
    "QTime": 1, 
    "params": { 
     "indent": "true", 
     "q": "*:*", 
     "_": "1394008742077", 
     "wt": "json" 
    } 
    }, 
    "response": { 
    "numFound": 1, 
    "start": 0, 
    "docs": [ 
     { 
     "first_name": "Funky", 
     "last_name": "Koval", 
     "phone": [ 
      { 
      "area": "US", 
      "number": "555-123-456-789", 
      "internal": "011, 
      "type": "S", 

      }, 
      { 
      "area": "UK", 
      "number": "1234-5678", 
      "internal": "9001", 
      "type": "L", 

      } 
     ] 
     "id": 1, 
     "_version_": 1461724104955527200 
     } 
    ] 
    } 
} 

이것은 단지 예입니다 (전화 번호 만 갖고 싶지는 않습니다.)

가장 중요한 것은 SOLR의 응답 형식입니다. 이 데이터를 다음과 같은 일반 형식으로 추가 할 수 있습니다. Funky, Koval, UK; 1234-5678; 9001; L, US; 555-123-456-789; 011; S 또는

<doc> 
<field name="first_name">Funky</field> 
<field name="last_name">Koval</field> 
<field name="phone">UK; 1234-5678; 9001; L</field> 
<field name="phone">US; 555-123-456-789; 011; S</field> 
<field name="id">1</field> 
</doc> 

문자열로 SOLR에 저장할 수 있습니다. 필요한 것은 JSON에 매핑 된 평면 구조보다 복잡한 형식의 응답입니다.

모든 조언을 주시면 감사하겠습니다.

답변

1

Solr support multuValued 필드. 그러나 다중 레벨 데이터 구조를 지원하지는 않습니다. Solr로부터 다음 유형의 응답을받을 수 없습니다.

"phone": [ 
      { 
      "area": "US", 
      "number": "555-123-456-789", 
      "internal": "011, 
      "type": "S", 

      }, 
      { 
      "area": "UK", 
      "number": "1234-5678", 
      "internal": "9001", 
      "type": "L", 

      } 

어떤 필드를 다중하여 제공은

같은
"phone": [ 
      "UK", 
      "1234-5678", 
      "9001", 
      "L" 
     ] 

제안이다, 그것은 singlevalued하여 제공된 SOLR에 들어갈 수 있도록 간단한 방법으로 개인 정보를 디자인 할 수

  1. /다중 값 필드.
  2. Solr에서 복잡한 구조화 된 데이터를 문자열이나 적절한 유형의 필드로 유지하십시오. 응용 프로그램에서 데이터를 구문 분석하여 실제 값을 가져옵니다.

당신은 What is the use of "multiValued" field type in Solr?

+0

당신은 당신의 문제를 해결하기 위해 중첩 된 문서를 사용할 수 있습니다 참조 할 수 있습니다 – lizzie

관련 문제