我有很多记录,其中msg是' a'。其中一些记录具有相同的类型。
我正在尝试编写一个查询来计算msg' a'的数量,但不会计算重复次数。
示例:
这应该返回两个,因为第一个和第二个记录具有相同的类型,并且只计算一次。
到目前为止,这是我的查询。
body: {
query: {
bool: {
must: [
{
range: {
"@timestamp" => { from: 'now-1d', to: 'now' }
}
},
{ match: { msg: 'a' }}
]
}
}
}
感谢任何帮助!
答案 0 :(得分:0)
尝试使用聚合,他们会为你计算:) 在这里阅读: https://www.elastic.co/guide/en/elasticsearch/reference/5.5/search-aggregations-bucket-terms-aggregation.html
尝试这样的事情:
body:{
query: {
bool: {
must: [
{
range: {
"@timestamp" => { from: 'now-1d', to: 'now' }
}
},
{ match: { msg: 'a' }}
]
}
}
},
aggs:{
"type":{
"terms":{
"field":"type"
}
}
}
}