我正在尝试过滤 msg 或 @message 部分下 dSId 字段为空白的所有记录。但是,无法找到任何能够执行此操作的特定查询。
如何在“msg”或“@message”部分中搜索以下记录的任何子字符串:
{
"_index": "dummy-value",
"_id": "1234",
"_version": 1,
"_score": null,
"_source": {
"level": 12,
"time": "2023-08-22T03:48:31.692Z",
"pid": 12,
"hostname": "<value>",
"reqId": "req-27h",
"teamId": 8789,
"msg": "This message:8789, wfId: b1550f15, aId: , dSId: , status: failed",
"@id": "4356546",
"@timestamp": "2023-08-22T03:48:31.693Z",
"@message": "{\"level\":12,\"time\":\"2023-08-22T03:48:31.692Z\",\"pid\":12,\"hostname\":\"<value>\",\"reqId\":\"req-27h\",\"teamId\":8789,\"msg\":\"This msg: 8789, wId: b1550f15, accountId: , dSId: , status: failed\"}",
"@owner": "54654",
"@log_group": "logger",
"@log_stream": "logger"
},
"fields": {
"@timestamp": [
"2023-08-22T03:48:31.693Z"
],
"time": [
"2023-08-22T03:48:31.692Z"
]
}
我尝试使用exists过滤器搜索_source.msg.dSId,但它似乎不起作用,结果获取那些在两个部分中都有dSId字段值的记录。
还使用了基于正则表达式的过滤器,但也没有返回任何结果:
{
"query": {
"regexp": {
"dSId": "[a-z][A-Z]*"
}
}
}