2011-12-13 4 views
4

문서가 solr로 전송되고 해당 문서가 이미 색인에 (ID로) 존재하면 새 문서가 이전 것을 대체합니다.Solr, 기존 문서의 블록 업데이트

하지만 자동으로 문서를 바꾸고 싶지는 않습니다. 그냥 무시하고 다음으로 진행하십시오. 어떻게 solr을 구성 할 수 있습니까?

물론 솔루를 쿼리하여 문서가 이미 있는지는 확인할 수 있지만 대량 업데이트를하면 나에게 좋지 않습니다. 프로세스가 복잡해지고 요청이 늘어납니다.

따라서 중복을 무시하도록 solr을 구성하는 방법이 있습니까?

+0

업데이트 된 답변을 읽었습니까? 유용 했습니까? – javanna

+0

예, 유용했습니다. 관심과 도움에 감사드립니다. 나는 새로운 기존 문서들을 버리는 간단한 updatehandler를 구현함으로써이 문제를 해결했다. – Alexander

답변

7

UpdateHandler으로 문서를 보내는 동안 add 요소에서 overwrite="false" 속성을 지정하는 동일한 uniqueIndex로 문서의 자동 덮어 쓰기를 비활성화 할 수 있습니다. 보십시오 here.

<add overwrite="false"> 
    <doc> 
     <field name="id">id</field> 
    </doc> 
</add> 

어쨌든 이 대신 기존 고객의 ID가 동일한 새 문서를 건너 뛰는에, SOLR에 중복 된 문서를 가질 수 있습니다. 나는 이것이 당신이 바라는 행동이라고 생각하지 않는다.

나는 UpdateHandler 또는 UpdateRequestProcessor을 작성하거나 solr user mailing list에서 얻은 제안 사항을 따라야한다고 생각합니다.

+0

설정의 예를 들어 주시겠습니까? 이 설정을 어디에 둘 것인지 파악할 수 없습니다. – Alexander

+0

물론, 업데이트 된 답변을 살펴보십시오. – javanna

+0

그랜드 감사합니다 – Alexander

관련 문제