我们有一个默认max_result_window
设置为10000
的索引,但我们的数据正在增加,我们希望我们有超过100万个文档,我们的要求是滚动所有数据来自每个史诗中以1000开头结束,我们的文件不是很大,我会在下面写下一个例子:
{
"serp_query": "c=44444&ct=333333",
"uid": "5815697",
"notify_status": 0,
"created_at": "2018-02-04 10:00:00"
}
我已将max_result_window
设置为10,000,000
但此时我们的索引中有近50,000个文档,我已阅读了有关此增长后果的一些文本
高于的值会消耗大量的堆内存 搜索并执行搜索的每个分片。离开这个是最安全的 值,因为它是一个使用滚动api进行任何深度滚动 https://www.elastic.co/guide/en/elasticsearch/reference/2.x/breaking_21_search_changes.html#_from_size_limits
但是我们的文档不是太大,我们的弹性服务器有16GB专用RAM,猜测没有问题, 我写信要求两个问题,
根据示例文档(我们所有的文档应该具有相同的字段),对于一百万个文档来说它可能有多大,我的意思是需要多少堆内存来处理它?</ p>
这是一个非常糟糕的解决方案,未来将面临我们的大问题吗?我们使用滚动而不是偏移并开始?
我们的查询不是很复杂,循环使用“created_at”降序排序的所有数据,并在每个史诗中获得1000个文档。
仅供参考:我们在2.7的弹性搜索引擎版本
答案 0 :(得分:0)
只需与他人共享结果,
如果文档不是很大,并且查询不是很复杂,则增加max_result_window
不会对性能产生很大影响。