当前位置:   article > 正文

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

es中使用http请求过滤时间

相关说明

在复合查询中填写

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": {}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

参考文章

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/45937
推荐阅读
相关标签
  

闽ICP备14008679号