我的问题非常简单和独特。我正在尝试从 elasticsearch 索引中的 json 字符串列获取值。如何从以下数据中获取“ClassName”?
{
"ClassName": "System.InvalidOperationException",
"Message": "Sequence contains no elements",
"Data": null,
"InnerException": null,
"HelpURL": null,
"StackTraceString": " . . . . .
}
我的解决方案是
GET slog-2019-08-11/_search
{
"script_fields": {
"data": {
"script": {
"lang": "expression",
"source": "doc['ClassName']",
"params": {
"markup": 0.2
}
}
}
}
}
但它返回给我一个错误:
{
"error": {
"root_cause": [
{
"type": "script_exception",
"reason": "link error",
"script_stack": [
"doc['ClassName']",
" ^---- HERE"
],
"script": "doc['ClassName']",
"lang": "expression"
}
],
"type": "search_phase_execution_exception",
"reason": "all shards failed",
"phase": "query",
"grouped": true,
"failed_shards": [
{
"shard": 0,
"index": "slog-2019-08-11",
"node": "TBSUPCkhQ1aHX069zwT7Tg",
"reason": {
"type": "script_exception",
"reason": "link error",
"script_stack": [
"doc['ClassName']",
" ^---- HERE"
],
"script": "doc['ClassName']",
"lang": "expression",
"caused_by": {
"type": "parse_exception",
"reason": "Field [ClassName] does not exist in mappings"
}
}
}
]
},
"status": 500
}