ドキュメントの更新

edit

ドキュメントのインデキシングと置き換えが可能であるだけでなく、ドキュメントを更新することもできます。ただし実際は、特定の状況下において、Elasticsearchは所定の更新を行わないことに注意してください。更新を行うと、Elasticsearchは古いドキュメントを削除してから、更新が適用された新しいドキュメントにインデックスを一括で付けます。

次の例は、nameフィールドを「Jane Doe」に変更して、前のドキュメント(IDが1)を更新する方法を示しています。

POST /customer/external/1/_update?pretty
{
  "doc": { "name": "Jane Doe" }
}

次の例は、nameフィールドを「Jane Doe」に変更して、前のドキュメント(IDが1)を更新し、同時にageフィールドを追加する方法を示しています。

POST /customer/external/1/_update?pretty
{
  "doc": { "name": "Jane Doe", "age": 20 }
}

シンプルなスクリプトを使用して、更新を実行することもできます。次の例は、スクリプトを使用して、年齢を5歳増やしています。

POST /customer/external/1/_update?pretty
{
  "script" : "ctx._source.age += 5"
}

上記の例では、`ctx._source`は更新される現在のソースドキュメントを指しています。

この文書の執筆時において、更新は一度に1つのドキュメントのみに実行できます。将来、Elasticsearchは、クエリ条件(`SQL UPDATE-WHERE`文など)を指定された複数のドキュメントを更新できるようになるかもしれません。