apoc.es.put

Procedure Apoc Extended

apoc.es.put(host-or-key,index-or-null,type-or-null,id-or-null,query-or-null,payload-or-null,$config) yield value - perform a PUT operation on elastic search

Signature

apoc.es.put(host :: STRING?, index :: STRING?, type :: STRING?, id :: STRING?, query :: ANY?, config = {} :: MAP?) :: (value :: MAP?)

Input parameters

Name Type Default

host

STRING?

null

index

STRING?

null

type

STRING?

null

id

STRING?

null

query

ANY?

null

payload

MAP?

{}

config

MAP?

{}

Output parameters

Name Type

value

MAP?

Usage Examples

The examples in this section are based on the following Elastic instance:

version: '3.5'
services:
  elastic:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      - discovery.type=single-node

with a dataset created by downloading this file, and executing the command:

curl -H 'Content-Type: application/json' -XPOST 'localhost:9200/bank/_bulk?pretty&refresh' --data-binary '@accounts.json'

We can create a document with a name property of John Doe and document id of 2, in the customers index, by running the following query:

CALL apoc.es.put("localhost","customers","_doc", "2", null, {
  name: "John Doe"
});
Table 1. Results
value

{result: "created", _shards: {total: 2, failed: 0, successful: 1}, _seq_no: 2, _index: "customers", _type: "_doc", _id: "2", _version: 1, _primary_term: 1}

We can update this document to add an address, by running the following query:

CALL apoc.es.put("localhost","customers","_doc", "2", null, {
  name: "John Doe",
  address: "Buckingham Palace"
});
Table 2. Results
value

{result: "updated", _shards: {total: 2, failed: 0, successful: 1}, _seq_no: 5, _index: "customers", _type: "_doc", _id: "2", _version: 2, _primary_term: 1}