Ideal refresh for indexing 1.5k docs at every 30 minutes?

We are using Elastic-PHP client,

default refresh interval is set to 5s
but after indexing new and deleting old stuff we do refresh at code level using

$refresh = $client->indices()->refresh();

then still it take 3-4 minutes to make new data visible for searching, can u help with this weared behavior of elasticsearch?

3 or 4 minutes is a lot for a refresh operation. I guess it could happen if you configured heavy warmers or have too many shards.

we have only 3 shards and 2 replica, we have not set anything for warmer.
can u point what else it could be?

How do you check whether the refresh happened or not? Does it take 3/4 minutes for the refresh operation to return or does it return instantly and then changes only become visible after 3/4 minutes?

i have written refresh code after indexing new and deleting old data, my cron-job had completed which i came to know because we use bugsnag for monitoring of jobs, so we received message in bugsnag but the the topic which we are waiting to come in searching didn't showed up until 4 minutes (so we waited 4 minutes after receiving message in bugsnag).

so code has not taken 3-4 minutes but elastic has taken 3-4 minutes to make that particular topic available for search.

so i didnt understand this behavior, and finding what might be wrong?

inshort : it Does not take 3/4 minutes for the refresh operation to return it return instantly but then changes only become visible after 3/4 minutes