Elasticsearch from+size 超过10000结果解决方法
2016-12-06 17:01
369 查看
方法一:
如果需要搜索分页,可以通过from size组合来进行。from表示从第几行开始,size表示查询多少条文档。from默认为0,size默认为10,
如果搜索size大于10000,需要设置index.max_result_window参数
注意:size的大小不能超过index.max_result_window这个参数的设置,默认为10,000。
方式二:
使用 scroll 代替,官方推荐方式。
优缺点:
方式一,当结果足够大的时候,会大大加大内存和CPU的消耗。使用非常方便。
方式二: 当结果足够大的时候, scroll 性能更加。但是不灵活和 scroll_id 难管理问题存在。
个人测试:当 结果足够大的时候 产生 scroll_id 性能也不低。如果只是一页页按照顺序,scroll是极好的,但是如果是无规则的翻页,那也是性能消耗极大的。
如果需要搜索分页,可以通过from size组合来进行。from表示从第几行开始,size表示查询多少条文档。from默认为0,size默认为10,
如果搜索size大于10000,需要设置index.max_result_window参数
注意:size的大小不能超过index.max_result_window这个参数的设置,默认为10,000。
PUT _settings { "index": { "max_result_window": "10000000" } }
方式二:
使用 scroll 代替,官方推荐方式。
优缺点:
方式一,当结果足够大的时候,会大大加大内存和CPU的消耗。使用非常方便。
方式二: 当结果足够大的时候, scroll 性能更加。但是不灵活和 scroll_id 难管理问题存在。
个人测试:当 结果足够大的时候 产生 scroll_id 性能也不低。如果只是一页页按照顺序,scroll是极好的,但是如果是无规则的翻页,那也是性能消耗极大的。
相关文章推荐
- 在Kubernetes上搭建EFK(Fluentd+Elasticsearch+Kibana)
- 打印机无法响应的解决方法第1/2页
- vbs Size 属性使用介绍(获取文件大小)
- 遭遇Reply from : TTL expired in transit.
- C#提示:“在证书存储区中找不到清单签名证书”的解决方法
- Internet Explorer 8 beta 中文版与IE7共存的解决方法
- Oracle数据更改后出错的解决方法
- sql server的 update from 语句的深究
- for循环中删除map中的元素valgrind检测提示error:Invalid read of size 8
- ON_COMMAND_RANGE多个按钮响应一个函数的解决方法
- 巧用mysql提示符prompt清晰管理数据库的方法
- VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法
- php采用curl访问域名返回405 method not allowed提示的解决方法
- PHP提示Cannot modify header information - headers already sent by解决方法
- php运行提示:Fatal error Allowed memory size内存不足的解决方法
- php5.3提示Function ereg() is deprecated Error问题解决方法
- C#控件闪烁的解决方法
- php出现web系统多域名登录失败的解决方法
- 一些Asp技巧和实用解决方法
- php使用iconv中文截断问题的解决方法