ElasticSearch多卷轴Java API
我想从索引中获取所有数据。由于项目数量太大,无法存储,因此我使用了滚动(尼斯功能): 打电话时,哪种方式效果很好:ElasticSearch多卷轴Java API,java,scroll,elasticsearch,parallel-processing,Java,Scroll,elasticsearch,Parallel Processing,我想从索引中获取所有数据。由于项目数量太大,无法存储,因此我使用了滚动(尼斯功能): 打电话时,哪种方式效果很好: client.prepareSearchScroll(scrollId) .setScroll(new TimeValue(600000)) .execute().actionGet() 但是,当我多次调用前一个方法时,我多次得到相同的scrollId,因此我无法并行滚动多次 我发现这是有可能的,尽管我不知道他是否属于埃斯 我做错什么了吗?在搜索了更多内容后,我得
client.prepareSearchScroll(scrollId)
.setScroll(new TimeValue(600000))
.execute().actionGet()
但是,当我多次调用前一个方法时,我多次得到相同的scrollId
,因此我无法并行滚动多次
我发现这是有可能的,尽管我不知道他是否属于埃斯
我做错什么了吗?在搜索了更多内容后,我得到了这样的印象(相同的
scrollId
)是经过设计的。超时过期后(每次调用后重置)
因此,每个索引只能获得一个打开的滚动条
国家:
滚动不是用于实时用户请求,而是用于
处理大量数据,例如为了重新索引
将一个索引的内容转换为具有不同配置的新索引
所以看来我想要的不是一个选择,是故意的——可能是因为优化
更新如上所述,无法创建多个滚动条,但只有当用于滚动的查询相同时,才会出现这种情况。例如,如果您对另一个
类型
,索引
,或者仅仅是另一个查询
,您可以有多个滚动
,您可以在同一时间滚动同一索引,这就是elasticsearch hadoop所做的
只是,不要忘记,在引擎盖下,索引由拥有数据的多个碎片组成,因此您可以使用以下命令并行滚动每个碎片:
.setPreference(“\u shards:1”)
的相关问题
client.prepareSearchScroll(scrollId)
.setScroll(new TimeValue(600000))
.execute().actionGet()