您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
PHP通过API对ES进行搜索后发现只能获取10条数据,搜索语句如下:
{ "query": { "filtered": { "query": { "query_string": { "query": "level:\"警告\" AND source_name:\"ASP.NET\" ", "analyze_wildcard": true } }, "filter": { "bool": { "must": [ { "range": { "@timestamp": { "gte": 1494309300, "lte": 1494489299, "format": "epoch_second" } } } ], "must_not": [] } } } } }
其余ES如果没有指定SIZE的话,默认是10条
http://elasticsearch-py.readthedocs.io/en/master/api.html#elasticsearch.Elasticsearch.search
但是size也不能超过10000,否则也会报错。
修改搜索语句如下:
{ "size": 10000, "query": { "filtered": { "query": { "query_string": { "query": "level:\"警告\" AND source_name:\"ASP.NET\" ", "analyze_wildcard": true } }, "filter": { "bool": { "must": [ { "range": { "@timestamp": { "gte": 1494309300, "lte": 1494489299, "format": "epoch_second" } } } ], "must_not": [] } } } } }
即可
经过以上还会出现问题,就是当数据超过一定量的时候,无法获取最新数据,原因是每次获取数据都是从1到10000条,当10000条之后的数据就无法显示了。基于此我们不建议时间跨度超过10000条数据,防止数据丢失。因此我们需要对其进行时间排序,让最新的数据靠前:
{ "size": 10000, "sort": [ { "@timestamp": { "order": "desc", "unmapped_type": "boolean" } } ], "query": { "filtered": { "query": { "query_string": { "query": "level:\"警告\" AND source_name:\"ASP.NET\" ", "analyze_wildcard": true } }, "filter": { "bool": { "must": [ { "range": { "@timestamp": { "gte": 1494309300, "lte": 1494489299, "format": "epoch_second" } } } ], "must_not": [] } } } } }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。