在给定必须与字段匹配的值的情况下,我正在尝试提取过去24小时的数据。我已经写了一些查询来匹配该字段的值并查询过去24小时,但是我不知道如何将它们组合起来。
查询最近24小时:
{
"_source": ["instance_name", "@timestamp"],
"query": {
"range": {
"sampletime": {
"gte": "now-24h",
"lte": "now"
}
}
}
}
查询要匹配的字段:
{
"_source": ["instance_name", "@timestamp"],
"query": {
"match": {
"instance_name": "value_to_search"
}
}
}
试图将两者结合:
{
"_source": ["instance_name", "@timestamp"],
"query": {
"bool": {
"must": [{
"match": {
"instance_name": "value"
},
"range": {
"sampletime": {
"gte": "now-24h",
"lte": "now"
}
}
}]
}
}
}
有没有办法将这些结合起来?同样,也可以定位同一字段下的多个值。
instance_name == x || instance_name == y || instance_name == z
答案 0 :(得分:1)
您的尝试非常接近。 > x
samp1 samp2 samp3
1 5 A 0
2 6 A 1
3 7 B 0
4 5 C 1
5 4 B 0
6 5 A 0
7 10 A 0
8 5 A 0
9 6 A 0
10 7 A 0
查询周围的格式略有偏离。
这是校正后的样本:
range
关于第二个问题,默认情况下,{
"_source": ["instance_name", "@timestamp"],
"query": {
"bool": {
"must": [
{
"match": {
"instance_name": "value"
}
},
{
"range": {
"sampletime": {
"gte": "now-24h",
"lte": "now"
}
}
}
]
}
}
}
运算符将用于所有匹配查询。
例如,or
将匹配所有具有FIELD
的匹配:
a or b or c
您可以在以下网址中详细了解“匹配”查询的全部选项 official documentation