2015-07-03 148 views
1

我想将elasticsearch.count(index=indices, body=query)中的查询转换为以下kibbana elasticsearch查询。从Kibana获取弹性搜索查询

目标是获得给定的时间戳的计数(最后24小时),簇和INTEGER_FIELD> 0

  • 时间戳:日期类型
  • 群集:串
  • INTEGER_FIELD:长(值 大多是更大的整数)

被(从Kibana得到的查询)

curl -XGET 'some-url:9200/logstash-2015.07.03,logstash-2015.07.02/_search?pretty' -d '{ 
    "facets": { 
    "0": { 
     "date_histogram": { 
     "field": "@timestamp", 
     "interval": "10m" 
     }, 
     "global": true, 
     "facet_filter": { 
     "fquery": { 
      "query": { 
      "filtered": { 
       "query": { 
       "query_string": { 
        "query": "*" 
       } 
       }, 
       "filter": { 
       "bool": { 
        "must": [ 
        { 
         "range": { 
         "@timestamp": { 
          "from": 1435840604940, 
          "to": 1435927004940 
         } 
         } 
        }, 
        { 
         "fquery": { 
         "query": { 
          "query_string": { 
          "query": "integer_field:(>0)" 
          } 
         }, 
         "_cache": true 
         } 
        }, 
        { 
         "fquery": { 
         "query": { 
          "query_string": { 
          "query": "cluster:(\"YYY\")" 
          } 
         }, 
         "_cache": true 
         } 
        } 
        ] 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    }, 
    "size": 0 
}' 

我写过其他案例的查询。只有这种情况下,我卡住了。帮助将非常感激。

回答

1

您正在查找的查询比Kibana强制自动生成的查询更简单。一般来说,当从Kibana中拉取它们时,您希望查找“已过滤”的查询部分。从那里,你可以删除通配符条件。

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool" : { 
      "must" : [ 
      { 
       "term" : { 
       "cluster" : "YYYY" 
       } 
      }, 
      { 
       "range" : { 
       "integer_field" : { 
        "gt" : 0 
       } 
       } 
      }, 
      { 
       "range" : { 
       "@timestamp" : { 
        "gt" : "now - 24h" 
       } 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 

的“集群” term过滤器是唯一一个可能是不是你使用“有效”。 term过滤器是精确匹配的索引值,所以如果它不是字面上的“YYYY”(例如,“yyyy”),那么它将不匹配。您可能希望{ "term": { ... } }为:

{ 
    "fquery" : { 
    "query" : { 
     "match" : { 
     "cluster" : "YYYY" 
     } 
    } 
    } 
} 
+0

非常感谢。有效! –

+0

不客气。 PS:你应该更新到Kibana 4. – pickypg

+0

我们要去:) –