现在用 range 查询日期总是查询不到,
比如我新建了一个 index curl -XPUT http://192.168.200.138:9200/company/
然后设置 mapping curl -XPUT http://192.168.200.138:9200/company/_mapping/employee -d ' { "properties" : { "date" : { "type" : "date", "format": "yyyy-MM-dd HH:mm:ss" }, "first_name" : { "type" : "string" }, "last_name" : { "type" : "string" }, "about" : { "type" : "string" }, "age" : { "type" : "long" } } }'
然后插入一条 curl -XPOST http://192.168.200.138:9200/company/employee/18 -d ' { "first_name" : "john", "last_name" : "smith", "age" : 25, "about" : "I love to go rock climbing", "interests": [ "sports", "music" ], "timestamp": "2017-08-28 14:15:30" }'
最后查询 curl -XGET 'http://192.168.200.138:9200/company/employee/_search' -d ' { "query" : { "range" : { "timestamp" : { "gt" : "now-2h" } } } } '
结果显示为空,这是为什么呢,timestamp 写得两点多,现在是两点半,时间肯定是两个小时以内,但就是查不出,有大神知道吗?多谢
1
hagezhou OP 已经解决了
首先是 mapping 的字段写得不对 其次是 es 默认的是 utc 时间,而服务器是 cst 时间,所有有了差距 |
2
dangyuluo 2017-08-29 00:16:53 +08:00
同一用时间戳,完美解决时区问题。
|