2013-09-27 4 views
1

내 uniqueKey가 정의 : 나는 그것의 해당 "아이디"필드 SOLR에 여러 문서를로드Solr 4에서 uniqueKey를 업데이트 할 수 있습니까? 로

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<uniqueKey>id</uniqueKey> 

, 그것은 가능하다, UPDATE "ID"값 내가 지금 필요하다?

나는이 오류가 그렇게하려고

:

Document contains multiple values for uniqueKey field 

것은 제가 아파치 SOLR 4.3.0

답변

2

을 사용하고 그것은 바로 가능 아니다. 간접적으로 어떻게 할 수 있는지 알아보기 전에 몇 가지를 설명해야합니다.

uniqueKey 필드의 값은 Solr이 문서 업데이트/바꾸기를 처리하는 방법입니다. 색인 생성을 위해 문서를 보낼 때 동일한 uniqueKey 값을 가진 기존 문서가 이미 존재하면 Solr은 새로운 사본을 색인하기 전에 자체 사본을 삭제합니다.

원자 업데이트 기능이 약간 다릅니다. 그것은 업데이트가 uniqueKey 필드를 제외한 문서의 모든 필드를 추가, 변경 또는 제거 할 수있게합니다. Solr이 문서를 식별 할 수있는 방법이기 때문입니다.

기본적으로 이전 문서의 모든 데이터로 새 문서의 색인을 생성하고 이전 문서를 삭제해야합니다. 문서의 모든 필드를 색인 생성 프로세스에서 사용할 수있는 경우 이전 문서를 삭제하기 전이나 후에 새 문서의 색인을 생성 할 수 있습니다. 그렇지 않으면 Solr에서 기존 문서를 쿼리하고 새 문서를 만들고 색인을 생성 한 다음 이전 문서를 삭제할 수 있습니다.

기존의 Solr 문서를 사용하여 새로운 색인을 색인하려면 copyField 대상이 아닌 한 모든 필드를 저장해야합니다.이 경우 해당 필드는 저장하면 안됩니다. 위에서 언급 한 원자 적 업데이트에는 동일한 요구 사항이 있습니다. 이러한 필드 중 하나 이상이 저장되지 않으면 검색 결과에 해당 필드가 포함되지 않고 데이터가 손실됩니다.