我是elasticsearch的新手,我正在做一些查询基础知识。
我必须检索那些文件的计数: 包含netflow.src_port ['10','11','12']或netflow.dst_port ['20','21','22'] AND时间戳在最近15分钟内。
我有一个基本查询如下:
index.jsp
通过official documentation, body: {
"query": {
"bool":{
"should": [
{"terms": { "netflow.src_port": ["10","11","12"] }},
{"terms": { "netflow.dst_port": ["20","21","22"] }}
],
"must": [
{"range" : {
"@timestamp" : {
"gt" : "now-15m"
}
}}
]
}
}
}
用于注意:文档不需要包含该范围内的src_port或dst_port,但如果有,则相应地计算成本。
我真正需要的是他们的条件。
如果我的解释不清楚,下面可能会传达我想要实现的目标:
should
我到底需要做什么才能获得理想的结果?
答案 0 :(得分:0)
尝试更改查询的should
部分以包含minimum_should_match
属性。 e.g。
{
"bool":{
"should": [
{"terms": { "netflow.src_port": ["10","11","12"] }},
{"terms": { "netflow.dst_port": ["20","21","22"] }}
],
"must": [
{"range" : {
"@timestamp" : {
"gt" : "now-15m"
}
}}
],
"minimum_should_match": 1
}
}