I am having a little trouble working with cross cluster search.. To start with my environment is as follows: ElasticSearch 6.2.3 with Java EE client using:
earlib 'org.elasticsearch.client:elasticsearch-rest-high-level-client:6.3.2'
earlib 'org.elasticsearch.client:elasticsearch-rest-client:6.3.2'
The scenario: 2 clusters both with the similar 5 indexes.
cluster-A:clustera_index1
cluster-A:clustera_index2
cluster-A:clustera_index3
cluster-A:clustera_index4
cluster-A:clustera_index5
cluster-B:clusterb_index1
cluster-B:clusterb_index2
cluster-B:clusterb_index3
cluster-B:clusterb_index4
cluster-B:clusterb_index5
When the client is running on Cluster-A it is considered 'local' and I build a search string specifying the remote and local indexes like this:
"clustera_index1,cluster-B:clusterb_index1,clustera_index2,cluster-B:clusterb_index2,clustera_index3,cluster-B:clusterb_index3,clustera_index4,cluster-B:clusterb_index4,clustera_index5,cluster-B:clusterb_index5"
(I am listing all indexes out this way because I am allowing the user to dynamically filter which indexes to search)
I also specify the "skip_unavailable": "true" in the persistent 'seed' definition ... Now when ALL of the indexes are present everything works fine, but there are some situations where one of the indexes may be missing on the remote site. When this happens, NONE of the remote site indexes are searched.
From the documentation I took the "skip_unavailable" to mean that if the remote cluster(s) was unavailable it would be skipped and allow the search to proceed. Is this the way it is supposed to work? Is there a different setting that will allow for a missing cluster and still process the search on indexes that are present even if one of the specified is not?