[Backport 8.9] Add docs for bulk helper improvement (#1958)
Co-authored-by: Josh Mock <joshua.mock@elastic.co>
This commit is contained in:
committed by
GitHub
parent
3ccd149249
commit
29dfffef9f
@ -281,7 +281,7 @@ helper uses those options in conjunction with the Bulk API call.
|
||||
[source,js]
|
||||
----
|
||||
const result = await client.helpers.bulk({
|
||||
datasource: [...]
|
||||
datasource: [...],
|
||||
onDocument (doc) {
|
||||
return {
|
||||
index: { _index: 'my-index' }
|
||||
@ -326,6 +326,33 @@ const result = await client.helpers.bulk({
|
||||
console.log(result)
|
||||
----
|
||||
|
||||
[discrete]
|
||||
==== Modifying a document before operation
|
||||
|
||||
~Added~ ~in~ ~`v8.8.2`~
|
||||
|
||||
If you need to modify documents in your datasource before it is sent to Elasticsearch, you can return an array in the `onDocument` function rather than an operation object. The first item in the array must be the operation object, and the second item must be the document or partial document object as you'd like it to be sent to Elasticsearch.
|
||||
|
||||
[source,js]
|
||||
----
|
||||
const { Client } = require('@elastic/elasticsearch')
|
||||
|
||||
const client = new Client({
|
||||
cloud: { id: '<cloud-id>' },
|
||||
auth: { apiKey: 'base64EncodedKey' }
|
||||
})
|
||||
const result = await client.helpers.bulk({
|
||||
datasource: [...],
|
||||
onDocument (doc) {
|
||||
return [
|
||||
{ index: { _index: 'my-index' } },
|
||||
{ ...doc, favorite_color: 'mauve' },
|
||||
]
|
||||
}
|
||||
})
|
||||
|
||||
console.log(result)
|
||||
----
|
||||
|
||||
[discrete]
|
||||
[[multi-search-helper]]
|
||||
@ -574,4 +601,4 @@ const scrollSearch = client.helpers.scrollDocuments({
|
||||
for await (const doc of scrollSearch) {
|
||||
console.log(doc)
|
||||
}
|
||||
----
|
||||
----
|
||||
|
||||
Reference in New Issue
Block a user