문서를 Elasticsearch에 추가하고 MVEL을 사용하여 타임 스탬프를 설정하고 싶습니다.Elasticsearch에서 MVEL로 중첩 된 필드의 속성에 액세스/업데이트하는 방법
이것은 현재 제가 시도하고있는 것입니다. 그러나 그것은 효과가 없습니다.
{"error":"ElasticSearchIllegalArgumentException[failed to execute script]; nested: PropertyAccessException[[Error: could not access property (Timestamp) in: java.lang.Long]\n[Near : {... Timestamp ....}]\n ^\n[Line: 1, Column: 1]]; ","status":400}
어떻게 타임 스탬프 필드 (이 성공적으로 매핑을 통해 생성된다)에 액세스 할 수 있습니다
{
"script": "
valueSet.Timestamp = time();
if (ctx._source[\"values\"] == null) { ctx._source.values = valueSet} else {ctx._source.values += valueSet}
",
"params": {
"valueSet":
[
{
"Timestamp": "",
"value": "100.00"
}
]
}
}
UPDATE : 액세스하는 방법을
을 찾은 valueSet
{
"script": "
valueSet[0].value = 'test';
if (ctx._source[\"values\"] == null) { ctx._source.values = valueSet} else {ctx._source.values += valueSet}
",
"params": {
"valueSet":
[
{
"Timestamp": "",
"value": "100.00"
}
]
}
}
위의 내용은 "100.00"을 "테스트"로 대체합니다.
해당 스크립트로 다른 필드에 액세스 해 보았습니까? 어쩌면 타임 스탬프 필드가 특별한 경우일까요? – MeiSign
japp! 성공하지 못했습니다. 위의 구문을 사용하여 "valueSet"의 모든 필드에 액세스 할 수 없습니다. – Jabb