問題タブ [elasticsearch-bulk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
4310 参照

java - ElasticSearch エラー ""メッセージ":"リクエスト サイズが 10485760 バイトを超えました"

この方法を使用して、ElasticSearch で 50 MB サイズの巨大な JSON 文字列をアップロードしている間 -

エラーは

10k バッチを送信するコードにカウンターを入れるとうまくいくかもしれませんが、その方法がわかりません。

この問題を処理する方法について何か提案はありますか?

0 投票する
0 に答える
281 参照

elasticsearch - Elasticsearch: UpdateByQuery API 応答が間違ったステータスを返す

エラスティック検索に存在しないドキュメントを更新しようとしているときに、UpdateByQuery API の問題に直面しています

問題の説明

  1. test_index-2020.03.11、test_index-2020.03.12… のように毎日 1 つのインデックスを作成し、8 日間 (今日と先週の 7 日間) のインデックスを維持します。

  2. データが到着すると (Kafka トピックから 1 つずつまたは一括で読み取る)、指定された ID のデータが既に存在する場合は更新する必要があります (8 日間のインデックスのいずれかに存在する可能性があります)。存在しない場合は保存します (現在の日指数)。

解決策、私は現在、データが1つずつ到着したときに試しています:

  • インライン スクリプトで UpdateByQuery を使用してドキュメントを更新する

  • BulkByScrollResponse が更新カウント 0 を返す場合は、ドキュメントを保存します

問題:

ドキュメントがまだ存在しない場合でも、次のように BulkByScrollResponse が更新されたフィールドを非ゼロ (1,2,3,4…) として返すことがわかります。

BulkIndexByScrollResponse[sliceId=null,updated=1,created=0,deleted=0,batches=1,versionConflicts=0,noops=0,retries=0,throttledUntil=0s]

このため、ドキュメントの保存リクエストをトリガーできません。

大量のドキュメント (一連の異なるドキュメント ID を持つ) を 1 回のリクエストでそれぞれのコンテンツで更新する必要がある場合、どのようにアプローチすればよいですか? UpdateByQuery で達成できますか?

注: 1 時間あたりに処理されるデータの量を考慮すると、Elasticsearch への複数のヒットを避ける必要があります。

ドキュメント ID は、str1:str2:Used:Sat Mar 14 23:34:39 IST 2020 の形式です。

しかし、ドキュメントがまだ存在しない場合でも、更新されたカウントがゼロではないことがわかります

私が試みているアプローチについてさらにいくつかのポイントを追加します。 "number_of_shards": 10, "number_of_replicas": 1 - 実際のドキュメントがどのインデックスに存在するかわからないため、このアプローチを使用します

一致するドキュメントが最大 1 つある場合、応答の更新済みフィールドには 1 つを超えてはなりません

以下は、応答の一部として取得する出力のカップルです: BulkIndexByScrollResponse[sliceId=null,updated=9,created=0,deleted=0,batches=1,versionConflicts=1,noops=0,retries=0,throttledUntil= 0s] BulkIndexByScrollResponse[sliceId=null,updated=10,created=0,deleted=0,batches=1,versionConflicts=0,noops=0,retries=0,throttledUntil=0s]