Elasticsearch API结合了范围和标签

时间:2018-10-10 14:41:49

标签: elasticsearch

我有2个麋鹿工作查询:

GET _search
{
  "query": {
    "range":{
      "timestamp":{
        "gt": "now-15m"
      }
    }
  }
}

GET _search
{
  "query": {
    "bool" : {
      "must" : {
        "match" : { "tags" : "mytag" }
      }
    }
  }
}

如何合并这两个查询?基本上,我想在最近15分钟内使用等于“ mytag”的标签来检索所有文档

1 个答案:

答案 0 :(得分:1)

您需要使用mustfilter将两者结合起来。当第一个给您所需的tags,第二个给您指定时间范围的过滤器时。 (顺便说一句,我继续使用您的架构,但我记得您应该将timestamp@timestamp一起看)

GET _search
{
  "query": {
    "bool" : {
      "must" : {
        "match" : { "tags" : "mytag" }
      },
     "filter": 
        {
          "range": {
            "timestamp": {
               "gt": "now-15m"
            }
          }
        }
    }
  }
}