-
Notifications
You must be signed in to change notification settings - Fork 25.2k
Allow specify dynamic templates in bulk request #69948
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
49 commits
Select commit
Hold shift + click to select a range
40e6a57
Add dynamic mapping type hint to bulk request
dnhatn eed16ef
Merge branch 'master' into dynamic-mapping-hint
dnhatn 27a538b
Remove TODO
dnhatn 6ee5210
Merge branch 'master' into dynamic-mapping-hint
dnhatn 69a3849
match_mapping_hint
dnhatn 02b2e89
fix doc
dnhatn 96795af
fix test
dnhatn 8f2c6c4
Merge branch 'master' into dynamic-mapping-hint
dnhatn 3c43e98
dynamicMappingHints -> dynamicMatchMappingHints
dnhatn de97281
javadocs
dnhatn 635c395
stronger yaml test
dnhatn 12a87ed
match mapping hint -> mapping hint
dnhatn f99abcd
add index request test
dnhatn d126606
revert tests
dnhatn f2e6c0f
Remove left over
dnhatn 00c6454
use existing methods for test
dnhatn 5679e5e
add test for bulk request
dnhatn 7922692
more rename
dnhatn ea394f1
stylecheck
dnhatn d77290c
Merge branch 'master' into dynamic-mapping-hint
dnhatn 290ed5c
feedback
dnhatn c6468fd
revert
dnhatn 58af624
Use template name
dnhatn 6cea974
Merge branch 'master' into dynamic-mapping-hint
dnhatn 286ce59
fix docs
dnhatn 8c9e402
fix message
dnhatn d2dfda1
Remove "hint" from the parameter
dnhatn d5a9231
wording docs
dnhatn a6f9971
Add a test for dynamic template with a wrong type
dnhatn 9c3ecba
simplify match_mapping_type
dnhatn 00b92c1
Simplify the validation
dnhatn a179238
minimize changes in serialization
dnhatn dd84c8a
Merge branch 'master' into dynamic-mapping-hint
dnhatn 315c8da
more yaml tests
dnhatn 0126070
remove hint
dnhatn b341fcc
Reject dynamic_templates on old nodes
dnhatn fd87800
Merge branch 'master' into dynamic-mapping-hint
dnhatn aef927e
Add min node version
dnhatn 8a80841
stylecheck
dnhatn 18d7b39
Revert "stylecheck"
dnhatn dccfb8e
Revert "Add min node version"
dnhatn 5a22dff
better error message
dnhatn a69d244
Merge branch 'master' into dynamic-mapping-hint
dnhatn 5900952
Merge 'master' into dynamic-mapping-hint
dnhatn 07029f0
Merge branch 'master' into dynamic-mapping-hint
dnhatn 18bcb64
move yaml test
dnhatn bf94a83
Update docs/reference/docs/bulk.asciidoc
dnhatn 60d11a4
Allow new dynamic template format with old indices
dnhatn d0010bd
fix mapping syntax
dnhatn File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
171 changes: 171 additions & 0 deletions
171
rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/bulk/11_dynamic_templates.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,171 @@ | ||
--- | ||
"Dynamic templates": | ||
- skip: | ||
version: " - 7.99.99" | ||
reason: "Dynamic templates parameter is added to bulk requests in 8.0" | ||
|
||
- do: | ||
indices.create: | ||
index: test_index | ||
body: | ||
mappings: | ||
dynamic_templates: | ||
- location: | ||
mapping: | ||
type: geo_point | ||
- my_location: | ||
match: my* | ||
mapping: | ||
type: geo_point | ||
- string: | ||
mapping: | ||
type: keyword | ||
- do: | ||
bulk: | ||
refresh: true | ||
body: | ||
- index: | ||
_index: test_index | ||
_id: id_1 | ||
dynamic_templates: | ||
location: location | ||
- { "location": [ -71.34, 41.12 ]} | ||
- index: | ||
_index: test_index | ||
_id: id_2 | ||
dynamic_templates: | ||
location: location | ||
- { "location": "41.12,-71.34"} | ||
- match: { errors: false } | ||
- match: { items.0.index.result: created } | ||
- match: { items.1.index.result: created } | ||
|
||
- do: | ||
search: | ||
index: test_index | ||
body: | ||
query: | ||
geo_bounding_box: | ||
location: | ||
top_left: | ||
lat: 42 | ||
lon: -72 | ||
bottom_right: | ||
lat: 40 | ||
lon: -74 | ||
- match: { hits.total.value: 2 } | ||
- match: { hits.hits.0._id: id_1 } | ||
- match: { hits.hits.1._id: id_2 } | ||
|
||
- do: | ||
bulk: | ||
refresh: true | ||
body: | ||
- index: | ||
_index: test_index | ||
_id: id_3 | ||
- { "my_location": "41.12,-71.34" } # matches the field name defined in the `my_location` template | ||
- index: | ||
_index: test_index | ||
_id: id_4 | ||
dynamic_templates: | ||
my_location: my_location | ||
- { "my_location": "41.12,-71.34" } # use dynamic_templates parameter | ||
- do: | ||
search: | ||
index: test_index | ||
body: | ||
query: | ||
geo_bounding_box: | ||
my_location: | ||
top_left: | ||
lat: 42 | ||
lon: -72 | ||
bottom_right: | ||
lat: 40 | ||
lon: -74 | ||
- match: { hits.total.value: 2 } | ||
- match: { hits.hits.0._id: id_3 } | ||
- match: { hits.hits.1._id: id_4 } | ||
|
||
- do: | ||
bulk: | ||
refresh: true | ||
body: | ||
- index: | ||
_index: test_index | ||
_id: id_5 | ||
dynamic_templates: | ||
location: foo_bar # ok as fields are defined | ||
- { "location": [ -71.34, 41.12 ]} | ||
- index: | ||
_index: test_index | ||
_id: id_6 | ||
dynamic_templates: | ||
my_location: foo_bar # ok as fields are defined | ||
- { "my_location": "41.12,-71.34" } | ||
- index: | ||
_index: test_index | ||
_id: id_7 | ||
dynamic_templates: | ||
location: bar_foo # ok as fields are defined | ||
- { "location": "41.12,-71.34" } | ||
- match: { errors: false } | ||
- match: { items.0.index.result: created } | ||
- match: { items.1.index.result: created } | ||
- match: { items.2.index.result: created } | ||
|
||
- do: | ||
bulk: | ||
refresh: true | ||
body: | ||
- index: | ||
_index: test_index | ||
_id: id_8 | ||
dynamic_templates: | ||
foo_location: bar_foo | ||
- { "foo_location": [ -71.34, 41.12 ] } # failed because dynamic template is not found | ||
- index: | ||
_index: test_index | ||
_id: id_9 | ||
dynamic_templates: | ||
foo_location: foo_bar | ||
- { "foo_location": "41.12,-71.34" } # failed because dynamic template is not found | ||
- index: | ||
_index: test_index | ||
_id: id_10 | ||
dynamic_templates: | ||
new_location: foo | ||
- { "location": "41.12,-71.34"} # ok as fields are defined | ||
- match: { errors: true } | ||
- match: { items.0.index.status: 400 } | ||
- match: { items.0.index.error.type: mapper_parsing_exception } | ||
- match: { items.0.index.error.reason: "Can't find dynamic template for dynamic template name [bar_foo] of field [foo_location]"} | ||
- match: { items.1.index.status: 400 } | ||
- match: { items.1.index.error.type: mapper_parsing_exception } | ||
- match: { items.1.index.error.reason: "Can't find dynamic template for dynamic template name [foo_bar] of field [foo_location]"} | ||
- match: { items.2.index.status: 201 } | ||
- match: { items.2.index.result: created } | ||
|
||
# Dynamic template has a wrong type | ||
- do: | ||
bulk: | ||
body: | ||
- index: | ||
_index: test_index | ||
_id: id_11 | ||
dynamic_templates: | ||
foo: string | ||
- { "foo.bar": "hello world" } # failed because dynamic template has a wrong type | ||
- index: | ||
_index: test_index | ||
_id: id_12 | ||
dynamic_templates: | ||
foo.bar: string | ||
- { "foo.bar": "hello world" } # ok | ||
- match: { errors: true } | ||
- match: { items.0.index.status: 400 } | ||
- match: { items.0.index.error.type: mapper_parsing_exception } | ||
- match: { items.0.index.error.reason: "Field [foo] must be an object; but it's configured as [keyword] in dynamic template [string]"} | ||
- match: { items.1.index.status: 201 } | ||
- match: { items.1.index.result: created } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.