PHP通过API搜索elasticsearch只获得10条数据-创新互联
PHP通过API对ES进行搜索后发现只能获取10条数据,搜索语句如下:
创新互联建站长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为上栗企业提供专业的成都网站设计、做网站、成都外贸网站建设公司,上栗网站改版等技术服务。拥有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": [] } } } } }另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:PHP通过API搜索elasticsearch只获得10条数据-创新互联
网站链接:http://scyanting.com/article/cedsih.html