Skip to content

Commit aacf96c

Browse files
committed
Restore UpdateRequest example YAML files 2–11
1 parent 968afe6 commit aacf96c

10 files changed

+856
-0
lines changed
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
summary: Scripted upsert
2+
method_request: POST test/_update/1
3+
description: >
4+
Run `POST test/_update/1` to perform a scripted upsert. When `scripted_upsert` is `true`, the script runs whether or not the
5+
document exists.
6+
# type: request
7+
value: "{
8+
9+
\ \"scripted_upsert\": true,
10+
11+
\ \"script\": {
12+
13+
\ \"source\": \"\"\"
14+
15+
\ if ( ctx.op == 'create' ) {
16+
17+
\ ctx._source.counter = params.count
18+
19+
\ } else {
20+
21+
\ ctx._source.counter += params.count
22+
23+
\ }
24+
25+
\ \"\"\",
26+
27+
\ \"params\": {
28+
29+
\ \"count\": 4
30+
31+
\ }
32+
33+
\ },
34+
35+
\ \"upsert\": {}
36+
37+
}"
38+
alternatives:
39+
- language: Python
40+
code: >-
41+
resp = client.update(
42+
index="test",
43+
id="1",
44+
scripted_upsert=True,
45+
script={
46+
"source": "\n if ( ctx.op == 'create' ) {\n ctx._source.counter = params.count\n } else {\n ctx._source.counter += params.count\n }\n ",
47+
"params": {
48+
"count": 4
49+
}
50+
},
51+
upsert={},
52+
)
53+
- language: JavaScript
54+
code: >-
55+
const response = await client.update({
56+
index: "test",
57+
id: 1,
58+
scripted_upsert: true,
59+
script: {
60+
source:
61+
"\n if ( ctx.op == 'create' ) {\n ctx._source.counter = params.count\n } else {\n ctx._source.counter += params.count\n }\n ",
62+
params: {
63+
count: 4,
64+
},
65+
},
66+
upsert: {},
67+
});
68+
- language: Ruby
69+
code: >-
70+
response = client.update(
71+
index: "test",
72+
id: "1",
73+
body: {
74+
"scripted_upsert": true,
75+
"script": {
76+
"source": "\n if ( ctx.op == 'create' ) {\n ctx._source.counter = params.count\n } else {\n ctx._source.counter += params.count\n }\n ",
77+
"params": {
78+
"count": 4
79+
}
80+
},
81+
"upsert": {}
82+
}
83+
)
84+
- language: PHP
85+
code: >-
86+
$resp = $client->update([
87+
"index" => "test",
88+
"id" => "1",
89+
"body" => [
90+
"scripted_upsert" => true,
91+
"script" => [
92+
"source" => "\n if ( ctx.op == 'create' ) {\n ctx._source.counter = params.count\n } else {\n ctx._source.counter += params.count\n }\n ",
93+
"params" => [
94+
"count" => 4,
95+
],
96+
],
97+
"upsert" => new ArrayObject([]),
98+
],
99+
]);
100+
- language: curl
101+
code:
102+
"curl -X POST -H \"Authorization: ApiKey $ELASTIC_API_KEY\" -H \"Content-Type: application/json\" -d
103+
'{\"scripted_upsert\":true,\"script\":{\"source\":\"\\n if ( ctx.op == '\"'\"'create'\"'\"' )
104+
{\\n ctx._source.counter = params.count\\n } else {\\n ctx._source.counter +=
105+
params.count\\n }\\n \",\"params\":{\"count\":4}},\"upsert\":{}}' \"$ELASTICSEARCH_URL/test/_update/1\""
106+
- language: Java
107+
code: |
108+
client.update(u -> u
109+
.id("1")
110+
.index("test")
111+
.script(s -> s
112+
.source(so -> so
113+
.scriptString("
114+
if ( ctx.op == 'create' ) {
115+
ctx._source.counter = params.count
116+
} else {
117+
ctx._source.counter += params.count
118+
}
119+
")
120+
)
121+
.params("count", JsonData.fromJson("4"))
122+
)
123+
.scriptedUpsert(true)
124+
.upsert(JsonData.fromJson("{}"))
125+
,Void.class);
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
summary: Doc as upsert
2+
method_request: POST test/_update/1
3+
description: >
4+
Run `POST test/_update/1` to perform a doc as upsert. Instead of sending a partial `doc` plus an `upsert` doc, you can set
5+
`doc_as_upsert` to `true` to use the contents of `doc` as the `upsert` value.
6+
# type: request
7+
value: "{
8+
9+
\ \"doc\": {
10+
11+
\ \"name\": \"new_name\"
12+
13+
\ },
14+
15+
\ \"doc_as_upsert\": true
16+
17+
}"
18+
alternatives:
19+
- language: Python
20+
code: |-
21+
resp = client.update(
22+
index="test",
23+
id="1",
24+
doc={
25+
"name": "new_name"
26+
},
27+
doc_as_upsert=True,
28+
)
29+
- language: JavaScript
30+
code: |-
31+
const response = await client.update({
32+
index: "test",
33+
id: 1,
34+
doc: {
35+
name: "new_name",
36+
},
37+
doc_as_upsert: true,
38+
});
39+
- language: Ruby
40+
code: |-
41+
response = client.update(
42+
index: "test",
43+
id: "1",
44+
body: {
45+
"doc": {
46+
"name": "new_name"
47+
},
48+
"doc_as_upsert": true
49+
}
50+
)
51+
- language: PHP
52+
code: |-
53+
$resp = $client->update([
54+
"index" => "test",
55+
"id" => "1",
56+
"body" => [
57+
"doc" => [
58+
"name" => "new_name",
59+
],
60+
"doc_as_upsert" => true,
61+
],
62+
]);
63+
- language: curl
64+
code:
65+
'curl -X POST -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d
66+
''{"doc":{"name":"new_name"},"doc_as_upsert":true}'' "$ELASTICSEARCH_URL/test/_update/1"'
67+
- language: Java
68+
code: |
69+
client.update(u -> u
70+
.doc(JsonData.fromJson("{\"name\":\"new_name\"}"))
71+
.docAsUpsert(true)
72+
.id("1")
73+
.index("test")
74+
,Void.class);
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
summary: Add a tag with a script
2+
method_request: POST test/_update/1
3+
description: >
4+
Run `POST test/_update/1` to use a script to add a tag to a list of tags. In this example, it is just a list, so the tag is added
5+
even it exists.
6+
# type: request
7+
value: "{
8+
9+
\ \"script\": {
10+
11+
\ \"source\": \"ctx._source.tags.add(params.tag)\",
12+
13+
\ \"lang\": \"painless\",
14+
15+
\ \"params\": {
16+
17+
\ \"tag\": \"blue\"
18+
19+
\ }
20+
21+
\ }
22+
23+
}"
24+
alternatives:
25+
- language: Python
26+
code: |-
27+
resp = client.update(
28+
index="test",
29+
id="1",
30+
script={
31+
"source": "ctx._source.tags.add(params.tag)",
32+
"lang": "painless",
33+
"params": {
34+
"tag": "blue"
35+
}
36+
},
37+
)
38+
- language: JavaScript
39+
code: |-
40+
const response = await client.update({
41+
index: "test",
42+
id: 1,
43+
script: {
44+
source: "ctx._source.tags.add(params.tag)",
45+
lang: "painless",
46+
params: {
47+
tag: "blue",
48+
},
49+
},
50+
});
51+
- language: Ruby
52+
code: |-
53+
response = client.update(
54+
index: "test",
55+
id: "1",
56+
body: {
57+
"script": {
58+
"source": "ctx._source.tags.add(params.tag)",
59+
"lang": "painless",
60+
"params": {
61+
"tag": "blue"
62+
}
63+
}
64+
}
65+
)
66+
- language: PHP
67+
code: |-
68+
$resp = $client->update([
69+
"index" => "test",
70+
"id" => "1",
71+
"body" => [
72+
"script" => [
73+
"source" => "ctx._source.tags.add(params.tag)",
74+
"lang" => "painless",
75+
"params" => [
76+
"tag" => "blue",
77+
],
78+
],
79+
],
80+
]);
81+
- language: curl
82+
code:
83+
'curl -X POST -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d
84+
''{"script":{"source":"ctx._source.tags.add(params.tag)","lang":"painless","params":{"tag":"blue"}}}''
85+
"$ELASTICSEARCH_URL/test/_update/1"'
86+
- language: Java
87+
code: |
88+
client.update(u -> u
89+
.id("1")
90+
.index("test")
91+
.script(s -> s
92+
.source(so -> so
93+
.scriptString("ctx._source.tags.add(params.tag)")
94+
)
95+
.params("tag", JsonData.fromJson("\"blue\""))
96+
.lang("painless")
97+
)
98+
,Void.class);

0 commit comments

Comments
 (0)