在【Elasticsearch】中,检索数据使用DSL语言。
在查询的时候,很少会只匹配一个查询子句或字段,在下面的代码里,你可以看到带上时间窗口的多字段与单字段的DSL查询语句的样例:

// 单字段查询 + 时间区间

DSL_String = {
    "query": {
        'bool': {
            'must':[
                {
                    'match':{
                        'log.file.path': '/var/log/messages'
                    }
                }
            ]
            ,
            'filter': {
                'range': {
                    "@timestamp": {
                        "gte": str_date + " " + str_hour_begin,
                        "lte": str_date + " " + str_hour_end,
                        "format": "yyyy.MM.dd HH:mm:ss",
                        "time_zone": "+08:00"
                    }
                }
            }
        }
    }
}

// 多字段查询 + 时间区间

DSL_String = {
    "query": {
        'bool': {
            'must':[
                {"match_all":{}},
                { "match": { "log.file.path": "/var/log/messages" }}
                ,
                { "match": { "host.hostname": "elk.adamhuan.com" }}
            ]
            ,
            'filter': {
                'range': {
                    "@timestamp": {
                        "gte": str_date + " " + str_hour_begin,
                        "lte": str_date + " " + str_hour_end,
                        # ------------
                        # "gte": "2019.10.21 " + str_hour_begin,
                        # "lte": "2019.10.21 " + str_hour_end,
                        # ------------
                        "format": "yyyy.MM.dd HH:mm:ss",
                        "time_zone": "+08:00"
                    }
                }
            }
        }
    }
}

说点什么

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒
隐藏
变装