使用ES做简单的时间条件过滤+模糊查询+精确匹配+关键字排除

相关说明

在复合查询中填写

0.0 ES地址 : http://user:password@elasticsearch.gz.baidubce.com:8999/cluster_id/

0.1 搜索的日志索引 : prod-logs/_search

0.2 请求方式 : POST

1. 查询出包含 log_geo 的数据 “wildcard”: { “message”: “log_geo” }

此处 log_geo 前面有*表示搜索以log_geo结尾的数据

log_geo后面有* 表示搜以log_geo开始的数据,

log_geo前后都有*就是通用匹配包含log_geo的记录

“wildcard”: { “message”: “log_geo” }

2. 查询某个时间段的数据

“range”: { “@timestamp”: { “gt”: “2018-02-08T07:00:00.056000000+00:00”,”lt”: “2018-02-08T08:00:00.056000000+00:00” } }

#注意 时区减去8小时

3. 条件查询与条件排除数据

3.1 match 包含provider 的数据

{ “match”: { “message”: “type:provider” } }

3.2 must_not 类似于 must 做排除使用

排除包含 “must_not”: { “match”: { “message”: “dateTime:2018-02-08 15:59” } },

4. from 表示起始的记录的ID

5. size 表示显示的记录数

查询语句 1,2,3可以组合,也可以单独使用

查询语句 如果得不到想要的结果应该是ES的分词导致的

{
  "query": {
    "bool": {
      "must": [
        { "range": { "@timestamp": { "gt": "2018-02-08T07:00:00.056000000+00:00","lt": "2018-02-08T08:00:00.056000000+00:00" } }  }
        ,   
        {  "wildcard": { "message": "*cp_geo*" }  }
        ,
        { "match": { "message": "*type:platform*" } }
      ],
      "must_not": { "match": { "message": "*deviceTypeCode:DTout00000000*" } },
      "should": []
    }
  },
  "from": 0,
  "size": 50,
  "sort": {  "@timestamp": "desc"  },
  "aggs": {}
}

参考文章

http://blog.csdn.net/dm_vincent/article/details/41720193
https://www.cnblogs.com/pilihaotian/p/5830754.html

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mtj66

看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值