0
logstash로 탄성 검색 결과를 사용하는 데 문제가 있습니다. 여기 내 샘플 이벤트입니다elasticsearch에서 객체 배열 생성/업데이트 logstash 출력
{
"guid":"someguid",
"nestedObject":{
"field1":"val1",
"field2":"val2"
}
}
이 업데이트가 발생할 때 id가있는 문서가 이미 elasticsearch에 존재할 것으로 기대합니다. 여기 내가 2 upserts 후 내 탄성 검색 문서에 갖고 싶어 것입니다 :
: 여기elasticsearch {
index => "elastictest"
action => "update"
document_type => "summary"
document_id => "%{guid}"
doc_as_upsert => true
script_lang => "groovy"
script_type => "inline"
retry_on_conflict => 3
script => "
if (ctx._source.nestedObjects) {
ctx._source.nestedObjects += event.nestedObject
} else {
ctx._source.nestedObjects = [event.nestedObject]
}
"
}
나는 점점 오전 오류입니다 : 여기
{
"oldField":"Some old field from original document before upserts."
"nestedObjects":[{
"field1":"val1",
"field2":"val2"
},
{
"field3":"val3",
"field4":"val4"
}]
}
현재의 내 탄성 검색 출력 설정은
response=>{"update"=>{"_index"=>"elastictest", "_type"=>"summary",
"_id"=>"64648dd3-c1e9-45fd-a00b-5a4332c91ee9", "status"=>400,
"error"=>{"type"=>"mapper_parsing_exception",
"reason"=>"failed to parse [event.nestedObject]",
"caused_by"=>{"type"=>"illegal_argument_exception",
"reason"=>"unknown property [field1]"}}}}