gpt4 book ai didi

node.js - Elasticsearch在不同的FROM值处返回相同的结果

转载 作者:行者123 更新时间:2023-12-03 01:05:11 26 4
gpt4 key购买 nike

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

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

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

最佳答案

在ElasticSearch中,什么时候写到什么时候可以读之间最多有1秒的延迟。您可以轻松创建一个测试来验证这一点,插入ID为1的记录,立即尝试读取ID为1,您将获得空值。

您要做的是在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

关于node.js - Elasticsearch在不同的FROM值处返回相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31126895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com