我正在尝试查询两毫秒时间戳之间的所有日志的弹性搜索。
直接通过以下方式查询Elasticsearch:
curl -XPOST <ElasticSearch> ' -d ' {"query" : { "bool" : { "must" : { "range" : { "received_at" : { "gte" : 1310325395701, "lte" : 1468933745000 } } } } } }'
我获得了理想的结果。但是,Python脚本中的以下查询返回0次命中:
res = es.search(index="syslog-*", body={ "query" : { "bool" : { "must" : { "range" : { "received_at" : { "gte" : 1310325395701, "lte" : 1468933745000 } } } } } }, size=6000)
我也试过这个:
res = es.search(index="syslog-*", body= { "query" : { "range" : { "received_at" : { "gte" : 1310325395701, "lte" : 1468933745000 } } } }, size=6000)
但完全相同的事情发生了。来自python脚本的其他类型的查询会返回命中:
res = es.search(index="syslog-*", body={"query": {"match_all": {}}}, size=6000)
其中:
from elasticsearch import RequestsHttpConnection
class MyConnection(RequestsHttpConnection):
def __init__(*args, **kwargs):
proxies = kwargs.pop('proxies', {})
super(MyConnection, self).__init__(*args, **kwargs)
self.session.proxies = proxies
es = Elasticsearch([es_url], connection_class=MyConnection, proxies = {'https': 'http://user:pw@proxy.org:port'})
我做错了什么?