我正在尝试在Kibana DevTools中编写一个查询,该查询为每个查询提供一个匹配项。 假设我有要与特定值匹配的字段(field1,field2)。
如果找到任何这些字段的日志,我想为每个字段显示1个结果。我现在正在使用的显示1条记录的1条代码如下:
(我正在寻找在最近30分钟内创建的日志,并使用sort来获取最后一个日志)
GET default*/_search
{
"size": 1,
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "field1:somevalue*"}
},
{
"range":{"@timestamp":{"gte": "now-30m"}}
}
]
}
},
"sort" :{
"@timestamp":{
"order":"desc"
}
}
}
如何修改它以为每个字段(field1,field2)显示1个日志。应该看起来像这样:
GET default*/_search
{
"size": 1,
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "field1:somevalue*"}
},
{
"range":{"@timestamp":{"gte": "now-30m"}}
}
]
}
},
"sort" :{
"@timestamp":{
"order":"desc"
}
}
}
AND
{
"size": 1,
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "field2:somevalue*"}
},
{
"range":{"@timestamp":{"gte": "now-30m"}}
}
]
}
},
"sort" :{
"@timestamp":{
"order":"desc"
}
}
}
上面的那个显然是行不通的,但是想形象化我的意思。 任何帮助表示赞赏
Val-以下是我正在尝试解决问题的错误的一些屏幕截图:
答案 0 :(得分:0)
我建议使用multi search API:
[['Pass', 'Fail', 'Pass', 'Fail', 'Pass', 'Fail', 'Fail'],
['Pass', 'Fail', 'Pass', 'Fail', 'Pass', 'Fail', 'Fail']]
在响应中,您将完全得到期望的结果,即每个查询的响应。