I am using Elasticsearch bulk API to send a lot of documents to index and delete at once. If there is an error for one document, other documents will be indexed or deleted successfully. And this leads to wrong state of data in elasticstore because in my case documents are kind of related to each other. I mean if one document's field has some value then there are other documents which should also have same value for that field. I am not sure how I can handle such errors from Bulk requests. Is it possible to rollback a request in any way? I read similar questions but could not get solution on handling such cases. Or instead of rollback, is there any way to send data only if there is no error? or something like dry run of request possible?
How to handle errors with bulk requests
4.2k Views Asked by Rohanil At
2
There are 2 best solutions below
0
Richa Goyal
On
The solution shared above to use BulkResponse output is basically to handle next batch requests. What if I want to break the batch processing at the position where any request failed in the batch. We are sending bulk events which are related to each other. Example of my issue: Batch(E1- E10), if batch fails at E5. I don't want E6-E10 to process because they are related. I want immediate response in that case.
Related Questions in ELASTICSEARCH
- How does Elasticsearch do attribute filtering during knn (vector-based) retrieval?
- Elastic python to extract last 1hr tracing
- Elastic search not giving result when Hyphen is used in search text
- FluentD / Fluent-Bit: Concatenate multiple lines of log files and generate one JSON record for all key-value from each line
- Elasticsearch functional_score with parameter of type string array as input not working
- Elasticsearch - cascading http inputs from Airflow API
- AWS Opensearch - Restore snapshot - Failed to parse object: unknown field [uuid] found
- cluster block exception for system index of kibana
- What settings are best for elasticsearch query to find full word and half word
- OpenSearch - Bulk inserting Million rows from Pandas dataframe
- unable access to kibana
- PySpark elastic load fail with error SparkContext is stopping with exitCode 0
- How to use query combined to KNN with ElasticSearch?
- Facing logstash compatibility issues
- If the same document is ingested at two different times, how to have the same id in Elasticsearch
Related Questions in ERROR-HANDLING
- Simple movie API request not showing up in the console log
- Sends a personalised error message from the back-end to the front-end with Nuxt-auth
- Creating Chrome extension, but display text from Javascript file is not showing up on HTML's display. The HTML is the InnerHTML of another HTML file
- How do I fix the response: Error in contrasts in R
- new to express & js and trying to understand next
- How to implement a Higher Order Component using TypeScript?
- symbol not found in flat namespace '__PyTrash_begin
- Handling multiple errors in Bison parser
- getting error 422 (Unprocessable entity) in a api-integration webapp
- Handling errors in MSAL Redirect - reactjs login with microsoft sso
- Node.JS getting error while building EXE with PKG module
- How do I display Supabase AuthApiError from server-side in client -side
- VBA dynamic feed multiple files into current one but error of "Run-rime error 7 out of memory" occurs
- How do I fix subscript out of bound error for my interaction matrices?
- pyinstaller' is not recognized as an internal or external command, operable program or batch file
Related Questions in ELASTICSEARCH-BULK-API
- Is BulkIngester (replacement of 'Bulk Processor') in elasticsearch java api thread safe?
- Is there a way to identify when the elastic _bulk API created a new index vs when it operated on an existing index?
- Uploading a CSV file in sql using SP_OAMethod procedures to do a BULK sync with Salesforce using BULK API Version 2
- A mapper_parsing_exception occurred when using the bulk API of Elasticsearch
- Unable to use _bulk API on Elasticsearch on Windows
- Bulkprocessor writes double or triple data to es
- remove an item using bulk update
- Efficient Bulk Loading Options for Elasticsearch in Python
- Elasticsearch | Mapping exclude field with bulk API
- How can I write multiple updates in one BulkAll method in ElasticSearch NEST 7.13.2
- how Elasticsearch bulk API works with threadpool
- Elasticsearch bulk operation: insert if not existing, otherwise update or add a nested element
- Elasticsearch multiple JSON insert bulk
- Bulk API error while indexing data into elasticsearch
- getting [ERROR] 'The [dims] property must be specified for field [vector].' despite being set in mapping
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I'm late to the question but will answer for whoever runs across a similar scenario in the future.
After executing the Elasticsearch (ES) bulk API aka
BulkRequest, you get aBulkResponsein return which consists of one or moreBulkItemResponse.BulkItemResponsehas a methodisFailed()which will tell you if that action failed or not. In your case, you can traverse all the items in the response if there are failures and handle failed responses as per your requirement.The code will look something like this for
Synchronousexecution:For
Asynchronousexecution, you can provide alistenerwhich will be called after the execution is completed. You have to overrideonResponse()andonFailure()in this case. You can read more about it at https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-document-bulk.htmlHTH.