0
我想將一些數據附加到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