2016-09-29 8 views
1

내가 가진SOLR 필드 대체 동작

(SOLR 4.10.3을 사용하여) 세 날짜와 SOLR 스키마 :

  1. requiredDate (필수 필드) (필요 없음)
  2. optionalDate
  3. resolvedDate (# 1 또는 # 2 채워짐)

    정렬을 위해 ResolvedDate를 사용해야하므로 multiValued = "false"입니다. 문제를 사용하여 resolvedDate를 채우려고합니다. "가능한 경우 선택적 필드 값을 사용하십시오. 그렇지 않으면 필수 필드 값으로 대체하십시오". 나의 시도 :

 

<copyField source="requiredDate" dest="resolvedDate" /> 
<copyField source="optionalDate" dest="resolvedDate" /> 

인해 단일 값 필드에 여러 값을 복사하는 시도에 실패했습니다.

스키마 또는 UpdateRequestHandler 정의에서이 대체 동작을 사용하여 필드를 구현할 수 있습니까? 방법?

답변

2

업데이트 요청 중에 스크립트를 사용하여 문서를 처리 할 수있는 StatelessScriptUpdateProcessor (cf. Update Request Processors)을 사용할 수 있습니다. 정의 된 각 스크립트에 대해 여러 개의 전역 변수가 제공되므로 원하는 작업을 쉽게 수행 할 수 있습니다.

스크립트 프로세서 정의를 넣을 수있는 UpdateRequestProcessorChain을 정의하고 업데이트 requestHandler (solrconfig.xml)에서 프로세서 체인 사용을 선언해야합니다.

+0

감사합니다. StatelessScriptUpdateProcessorFactory, requestHandler update.chain 및 update-script.js에 대한 config 예제가 예상보다 쉬워졌습니다 – GoetzOnline