It is well documented that when specifying an ID of a document upon ingestion, elasticsearch will first check whether that ID is already in use, and only then approve the new document for indexing. This comes with a big performance price tag. We have given up setting our own ID for performance issues, but this makes our codebase much more complex as documents need to be searched instead of directly accessed.
Why is this check necessary?
We are very sure of the uniqueness of the ID we are providing and would expect a collision to be automatically interpreted as an update action.
I would like to suggest such a flag to disable checking the ID of documents before indexing.
If I compare this behavior with mapping, for example, elasticsearch does not check whether the mapping of the document I am about to index actually matches the expected one in the index. Instead, it tries to index the document, and in case of a mapping collision the document is rejected and an exception is thrown.