首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在不同值处返回相同结果的Elasticsearch

在不同值处返回相同结果的Elasticsearch
EN

Stack Overflow用户
提问于 2015-06-29 22:52:50
回答 1查看 391关注 0票数 0

目前,我正在遍历29000个文档,在每个文档中,我都会向嵌套字段添加一个子文档并进行更新。为了管理我所处理的数据量,我将循环分解成10,000个组,并使用ES大小和from选项来控制每个迭代应该从哪里开始。所以,一旦第一个10,000被更新,我执行另一个查询来获取下一个10,000,等等.问题是,每次我进入第二组时,批中有少数几个文档已经在前10,000批中处理过,当我进入第三批时,所有已经处理过的文档都应该从20,000到29,000范围内获取文档。

似乎我处于某种竞争状态,因为按版本号进行排序或查询没有任何效果。我也尝试过在查询之间进行刷新和刷新,但仍然没有结果。

有没有人遇到过类似的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-29 23:03:15

在ElasticSearch中,在什么时候写东西和什么时候可以阅读之间有1秒的间隔。您可以很容易地创建一个测试来验证这一点,用id 1插入记录,立即尝试读取id 1,您将得到返回null。

您想要做的是在ES中使用"SCROLL SCAN“。当使用卷轴时,它会跟踪已经给您的记录,这样当您请求返回下一个10,000时,您就可以保证不会得到任何副本。

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-scroll.html#scroll-scan

注意:当您指定滚动扫描的大小时,您指定的大小是每片。因此,如果您想要返回10,000块,则需要指定size = 10,000/# number of shards

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31126895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档