apoc.es.post

Procedure Apoc Extended

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

Signature

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

Input parameters

Name Type Default

host

STRING?

null

index

STRING?

null

type

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 in the customers index, by running the following query:

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

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

Elastic will generate an _id value for us when we use apoc.es.post. If we want to provide an id, or update an existing document, see apoc.es.put.