답변은 시행 착오를 통해 발견 한 ScriptTransformer에서 "예"입니다.
Solr 설명서는 "set", "add"또는 "inc"가있는 필드 노드에 업데이트 속성을 추가하는 방법을 보여줍니다. 필요한 업데이트 특성을 가진 테스트 XML 파일을 만들면 일반 업데이트 처리기로 전달할 때 제대로 작동합니다. 그러나 DIH로 넘어갈 때 (심지어 변환없이) 업데이트 속성은 완전히 무시됩니다.
다음은 업데이트 속성을 다시 도입하고 원자 적 업데이트를 작동시키는 데 사용 된 스크립트 변환기의 단순화 된 버전입니다. Java HashMap의 사용에 주목하십시오.
var atomicTransformer = function (row) {
var authorMap = new java.util.HashMap();
var author = String(row.get('author'));
authorMap.put('add', author);
row.put('author', authorMap);
};
이 다음 JSON 다이 하이드로에서 디버그 모드를 생성합니다
{
"id": [
123
],
"author": [
{
"add": "Smith, J"
}
]
}
다중 값 필드는 아무 문제 없습니다 : 대신 문자열의 HashMap에 ArrayList를 전달합니다.
var atomicTransformer = function (row) {
var fruits = new java.util.ArrayList();
fruits.add("banana");
fruits.add("apple");
fruits.add("pear");
var fruitMap = new java.util.HashMap();
fruitMap.put('add', fruits);
row.put('fruit', fruitMap);
}