ディレクトリ
バッチ操作がより効率的
バッチリクエスト全体を、リクエストを受け入れるノードのメモリにロードする必要があります。そのため、リクエストが大きいほど、他のリクエストで使用できるメモリは少なくなります。最適な一括リクエストサイズがあります。このサイズを超えると、パフォーマンスは向上せず、低下する可能性があります。最適なサイズは確かに固定数ではありません。それは、ハードウェア、ドキュメントのサイズと複雑さ、およびインデックス作成と検索の負荷に完全に依存します。
スイートスポットはまだ簡単に見つけることができます。標準ドキュメントのバッチインデックスを作成してみてください。サイズが大きくなると、パフォーマンスが低下し始めたら、バッチサイズが大きすぎます。最初の数は1000から5000のドキュメントにすることができます。ドキュメントが非常に大きい場合は、より小さいバッチを使用できます。
多くの場合、リクエストするバッチの物理的なサイズに焦点を合わせると役立ちます。1000の1KBドキュメントは、1000の1MBドキュメントとは大きく異なります。適切なバッチは、サイズが5〜15 MBの間に保つのが最適です。
_バルク操作
Elasticsearchでは、バッチ挿入、変更、および削除操作はすべて_bulk APIを介して行われます。
データを一括で挿入する
最後の行にキャリッジリターンが必要であることに注意してください。つまり、最後に空白行が必要です。
{"create":{"_index":"haoke","_type":"user","_id":2001}}
{"id":2001,"name":"name1","age": 20,"sex": "男"}
{"create":{"_index":"haoke","_type":"user","_id":2002}}
{"id":2002,"name":"name2","age": 20,"sex": "男"}
{"create":{"_index":"haoke","_type":"user","_id":2003}}
{"id":2003,"name":"name3","age": 20,"sex": "男"}
一括削除
{"delete":{"_index":"haoke","_type":"user","_id":2001}}
{"delete":{"_index":"haoke","_type":"user","_id":2002}}
{"delete":{"_index":"haoke","_type":"user","_id":2003}}