ClusterHealthRequest


(Madhan3396) #1

Hi team,
Consider I'm having two indices namely twitter1, twitter2.

String indexpattern = "twitter*"
ClusterHealthRequest request = new ClusterHealthRequest(indexpattern);
ClusterHealthResponse healthResponse = client.cluster().health(request, RequestOptions.DEFAULT);

Here healthResponse.getIndices().entrySet() returns twitter1 and twitter2.

When indexpattern = "twitter1" the healthResponse.getIndices().entrySet() returns twitter1. Thats fine.

But when indexpattern = "twitter" it throws an exception saying java.io.IOException: listener timeout after waiting for [30000] ms after 30 seconds, instead of returning empty set.

Is that normal to throw exception when indices in the cluster doesn't match the pattern?

NOTE: I'm in elasticsearch and elasticsearch-rest-high-level-client version 6.4.0.


(David Turner) #2

Yes. A ClusterHealthRequest for a particular index is a request to be notified when that index has been created. Since the twitter index is never created, the request eventually times out.


(Madhan3396) #3

So returning empty map rather than throwing timeout exception might be a better option.


(system) #4

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.