Tribe node on multiple clusters with identical index names

Hi All,

I'm trying to set up a tribe node that connects to multiple clusters with identical index names. Tribe node is only able to return query results from just one cluster. According to the documentation, "When there is a conflict and multiple clusters hold the same index, by default the tribe node will pick one of them."

Changing index names from all clusters will be a nightmare. Is there an option for tribe node to use alias instead of index names?


You are going to need to create aliases in the downstream clusters. Tribe nodes can't do anything, it's just a client.

Long term solution is to create unique index name in each cluster. I run into this a few years ago, and luckily fixed it before it became a nightmare that it would be now.

Thank you for your reply Tinle. Can you elaborate more on how creating aliases in the clusters can help? If I have unique aliases in each clusters, can the tribe node add aliases instead of index?

Tribe nodes is going to pick one when there is a conflict, e.g. duplicate index name. That's going to be your first problem there. Secondly I do not know if it is possible to create alias in downstream clusters from a tribe node.

You have some minor control over which cluster a tribe will favor via the on_conflict: statement, but then you are stuck to always using that cluster :-). So that does not solve your problem.

The simplest solution I can see is to run a script in each downstream cluster and create aliases mapping the duplicate indices to unique name.

For example 3 downstream clusters that we will call cluster1, cluster2, cluster3 and the set of indices that are duplicate as idx-YYYY.MM.DD

Write script to use curator and create aliases in each cluster.

alias cluster1-idx-YYYY.MM.DD ---> idx-YYYY.MM.DD

alias cluster2-idx-YYYY.MM.DD ---> idx-YYYY.MM.DD

and so on.

Now in your tribe nodes, you can refer to the unique downstream indices via aliases.

You cannot. Do it locally on the cluster.