web-dev-qa-db-ja.com

ESはデフォルトで10レコードのみを返します。スクロールAPIを使用せずにすべてのレコードを取得する方法

ESにレコードを照会すると、デフォルトで10レコードが返されます。スクロールAPIを使用せずに、同じクエリですべてのレコードを取得するにはどうすればよいですか。

サイズを指定するオプションがありますが、サイズは事前にわかりません。

10
Ajinkya Dhote

1回のリクエストで最大10,000件の結果を取得できます(設定"size": 10000)。一致するドキュメントが1万を超える場合は、 from/size parameters の組み合わせを使用してそれらをページ分割できます。

不明な数のドキュメントに対してページネーションを実行できるようにするには、最初に返されたクエリから合計数を取得する必要があります。

データに同時に変更がある場合、ページ付けされた取得の結果が一貫していない可能性があることに注意してください(たとえば、ページ付け中に1つのドキュメントが挿入または削除された場合)。スクロールは、クエリの開始時に作成されたインデックスの「スナップショット」から作成されるため、一貫性があります。

お役に立てば幸いです。

10