gpt4 book ai didi

php - Elasticsearch 滚动扫描查询不返回所有文档,缺少第一组

转载 作者:可可西里 更新时间:2023-11-01 01:14:36 24 4
gpt4 key购买 nike

我正在尝试滚动我的 ES 索引并获取所有文档,但看起来我一直缺少初始滚动返回的第一组文档。例如,如果我的滚动大小为 10,而我的查询在滚动后总共返回 100,我将只有 90 个文档。对我缺少的东西有什么建议吗?

这是我目前尝试过的:

$json = '{"query":{"bool":{"must":[{"match_all":{}}]}}}';

$params = [
"scroll" => "1m",
"size" => 50,
"index" => "myindex",
"type" => "mytype",
"body" => $json
];

$results = $client->search($params);
$scroll_size = $results['hits']['total']; // returns total docs that match query
$s_id = $results['_scroll_id'];

print " total results: " . $scroll_size;

//scroll
$count = 0;
while ($scroll_size > 0) {
print " SCROLLING...";
$scroll_results = $client->scroll([
'scroll_id' => $s_id,
'scroll' => '1m'
]);

// get number of results returned in the last scroll
$scroll_size = sizeof($scroll_results['hits']['hits']);
print " scroll size: " . $scroll_size;

// do something with results
for ($i=0; $i<$scroll_size; $i++) {
$count++;
}
}
print " total id count: " . $id_count;

最佳答案

您执行的第一个查询返回文档数,也返回文档。第一个查询是建立滚动条,也是获取第一组文档。一旦处理完第一组结果,就可以使用 scroll_id 获取下一页,依此类推。

关于php - Elasticsearch 滚动扫描查询不返回所有文档,缺少第一组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42654894/

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