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? |
{} |
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"
});
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"
});
value |
---|
{result: "updated", _shards: {total: 2, failed: 0, successful: 1}, _seq_no: 5, _index: "customers", _type: "_doc", _id: "2", _version: 2, _primary_term: 1} |