从Kibana获取Elasticsearch查询

Munai das udasin

我想将以下kibbana elasticsearch查询转换为中的查询elasticsearch.count(index=indices, body=query)

目标是获取给定时间戳记(过去24小时),cluster和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
}'

对于其他情况,我有书面查询。只是这种情况,我被困住了。帮助将不胜感激。

pickypg

您要查找的查询比强迫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"
      }
    }
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Kibana中的自定义Elasticsearch查询

如何获取从 Kibana 发送的原始查询?

通过Kibana控制台Elasticsearch查询响应缓慢

从elasticsearch查询创建一个Kibana URL

在elasticsearch kibana查询中使用partial_fields

是否可以使用Kibana生成的查询从Elasticsearch中删除?

ElasticSearch / Kibana-获取唯一会话ID的计数

如何将 Kibana 查询转换为“elasticsearch_dsl”查询

带有Solr的香蕉中的多个查询(如Kibana和elasticsearch中的查询)

Elasticsearch NEST查询的行为不像Kibana Dev Tools中的等效查询

如何在 elasticsearch dsl 查询中使用 kibana 可视化查询?

Elasticsearch + Kibana 6.2与Elasticsearch + Kibana 7.9

Elasticsearch查询以从JSON获取属性的值

Elasticsearch查询以获取多个属性的值

elasticsearch——获取正确的查询字符串

如何创建ElasticSearch查询以获取此信息?

如何查询elasticsearch以获取嵌套属性

Kibana和Elasticsearch错误

将Elasticsearch kibana查询字符串格式转换为URI搜索格式

有什么办法(插件)将kibana查询语法解析为elasticsearch api主体?

Kibana查询完全匹配

在python中从kibana查询?

ElasticSearch / Kibana:获取在特定日期之后的条目中找不到的值

当我包括小时和分钟时,Kibana无法从elasticsearch获取日期

如何通过Elasticsearch查询获取每个组的最新值?

如果查询在引号之间,如何从elasticsearch获取精确的文本匹配

如何使用 elasticsearch 查询和获取部分属性

如何在Elasticsearch中的查询中获取max_score

如何查询elasticsearch以获取'value == 1或value not record'的记录?