2017-02-22 5 views
0

두 개의 문서 (.csv)가 있습니다. 병합하고 싶습니다. 가능한가? 여기Solr에서 두 개의 문서 병합

예를

문서 1 :

<doc> 
<arr name="id"> 
    <long>200000000</long> 
</arr> 
<arr name="Name"> 
    <str>Sample</str> 
</arr> 
<arr name="first_name"> 
    <str>Sally</str> 
</arr> 
</doc> 

Document2 :

<doc> 
<arr name="id"> 
    <long>200000000</long> 
</arr> 
<arr name="Street"> 
    <str>Any Street</str> 
</arr> 
<arr name="State"> 
    <str>Any State</str> 
</arr> 
</doc> 

그것은 다음과 같아야합니다

<doc> 
<arr name="id"> 
    <long>200000000</long> 
</arr> 
<arr name="Name"> 
    <str>Sample</str> 
</arr> 
<arr name="first_name"> 
    <str>Sally</str> 
</arr> 
<arr name="Street"> 
    <str>Any Street</str> 
</arr> 
<arr name="State"> 
    <str>Any State</str> 
</arr> 
</doc> 

가 어떻게 SOLR에서이 작업을 수행 할 수 있습니다? 두 번째 코어를 만들고 그것을 어떻게 병합해야합니까? 또는 무엇을 할 수 있습니까?

+0

질문에 지금까지 시도한 것을 추가하십시오. – Aaron

답변

0

네, 가능, 당신은이 작업을 수행합니다

  1. 인덱스 첫번째 문서 문서 1
  2. 의 추가 데이터로, 해당 문서를 업데이트 partial updates를 사용하여 :

    {"id":"200000000", 
    "Street":{"add":["Any Street"]}, 
    "State":{"add":["Any State"]} 
    } 
    

단지 모든 요구 사항이 저장되어야합니다 (stored = "true") 또는 docValues ​​(docValues ​​= "true")

0

병합 코어가 여기에 도움이되지 않습니다. Apache Solr Reference에서 자세히 언급했듯이 인덱스를 병합하려면 다음과 같은 몇 가지 요구 사항을 충족해야합니다.

두 인덱스는 호환 가능해야합니다. 스키마는 동일한 필드를 포함해야하며 필드를 동일한 방식으로 분석해야합니다.

이제 사용 사례에 따라 다릅니다. 경우

  1. 당신은 당신이 쓸 수있는 동시에 사용할 수있는 파일을 CSV 모두 업데이트를 가지고 DataImportHandler (여러 소스에 대한) 당신을위한 필드를 정의 할 수 있습니다 SOLR

  2. 을 모두 CSV 파일과 인덱스에서 데이터를 병합하기 스키마의 두 문서 그리고 첫 번째 CSV 파일의 색인을 생성 할 수 있습니다. 그리고 두 번째 csv 파일을 사용하여 색인을 부분 업데이트하십시오.

0

가능하면 해당 CSV 파일을 병합해야합니다. 일반적인 문제입니다. 예를 들어 Unix join utility을 사용할 수 있습니다.

Solr 측에서 절대 수행해야하고 파일 중 하나를 원자 적 업데이트로 변환 할 수없는 경우 SOLR-9530을 계속 주시 할 수 있지만 아직 릴리스되지는 않습니다.