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;