2017-03-23 188 views
0

デフォルトでElasticSearchは10個のレコードを提供しますが、サイズパラメータを設定して10個以上のレコードを取得できますが、 ElasticsearchにJestクライアントを使用するとレコードサイズが10000にすぎない場合は、10,000を超えてExceptionがスローされます。Elasticsearchから一度に1万件以上のドキュメントを取得する方法

あなたはelasticsearchのMAX-結果ウィンドウを更新することができアドバンス

答えて

1

おかげ冗談クライアント(Javaの)を使用してelasticsearchで一度に複数1万レコードを取得するために私を助けてください。

curl -XPUT "http://localhost:9200/my_index/_settings" -d '{ "index" : { "max_result_window" : 500000 } }' 

これは、Elasticが再起動されるまで持続されます。変更することができます

index.max_result_window: 1000000 

elasticsearch.ymlファイルを永続的に解決します。

+0

こんにちは、おはようありがとうございました!!!!!!!! BTWはこのmax_result_windowを増やして、メモリの問題につながりますか?私は、ES –

+0

の5.Xバージョンをあまり使用していません。クエリを実行すると、少しメモリが必要になります。私は100万の制限でそれを使用し、正常に動作します – harshil9968

1

その制限が理由であり - ドキュメントからの引用:

〜10,000デフォルトはセーフガードは、検索要求が+サイズからヒープメモリとに比例する時間がかかるですindex.max_result_window

  • リアルタイム/ユーザーフェーシング:使用Search After(深いページネーションを避けるため)良好な応答時間と合理的なヒープの使用量と

はあなたのユースケースによっては、より良い選択肢があります。

  • 機械/バッチ処理(多くの場合、すべてのデータを読み取る):Scroll。検索コンテキストが作成され、指定された時間だけ開いたままになります。コンテクストが開いている限り、結果は安定します。
  • 関連する問題