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://ybzwz.com/article/cedsih.html