I've had a previous similar topic here: `refresh=wait_for` taking unexpectedly long
In my application users can operate on tickets, archive them, etc. Due to the flexibility of our interface, the result is directly presented from ES. I.e. for a list of tickets to show with (various) filters we never hit our primary data source but exclusively use the ES result.
Any operation initiated by user which may affect the status of a ticket (and thus: the visibility of the users current filter selection) must done synchronously so we can refresh the list view and immediately reflect the new state.
It's not an issue when users operate on a few tickets but when they select e.g. 40 or 50, the indexing of these documents usually takes 5 to 15 seconds. This is quite constant.
In rare cases we also see timeouts.
As can be seen in the other thread, in the past we also tried
refresh=wait_for but got worse results than with
Does it make sense to only send the updated fields? I'm aware that internally ES has to re-index the whole document anyway so we didn't go this route to avoid complexity in our application.
What can I do do increase the performance of having to synchronously change documents and immediately reflect this?