Python公式APIを使用してアクセスしたい2つのelasticsearchクラスター(ノードではない)があります。
各 Elasticsearch クラスターの構成ファイルでクラスター行を変更しました。
cluster.name: elasticsearch_prod
cluster.name: elasticsearch_traf
しかし、2 番目のクラスターに接続する方法が見つかりません。両方とも (ローカルで) 実行されています。
Python で Elasticsearch クライアント コンストラクターにパラメーターを渡すことができるようです 。 http://www.elasticsearch.org/blog/unleash-the-clients-ruby-python-php-perl/
また、elasticsearch-python のドキュメントには、特定のノードまたはホストに接続する方法が説明されていますが、特定のクラスターには接続されていません: http://elasticsearch-py.readthedocs.org/en/master/api.html#elasticsearch
es = Elasticsearch(cluster='elasticsearch_traf')
につながる
In [86]: es.cluster.stats()
Out[86]: {u'cluster_name': u'elasticsearch_prod', [...]
クラスターを別のマシンに配置したいので、別のインデックスを使用したくありません。
ありがとう
編集: 希望するクラスターからノードに接続しようとしましたが、動作させることができません。私の2つの実行中のノードはこれらの名前を持っています (auto :) )
'Jean Grey-Summers' (cluster_name: elasticsearch_prod)
'Sluk' (cluster_name: elasticsearch_traf)
しかし、私がしようとすると:
es = Elasticsearch(['Jean Grey-Summers'],sniff_on_start=True)
また
es = Elasticsearch(['Sluk'], sniff_on_start=True)
それは次のように出てきます:
TransportError: TransportError(N/A, 'Enable to sniff hosts.')
N / Aは、私が正しくやっていないと思わせます...
コメントで述べたように、部族を探しているわけではないと思います.2つのクライアントがそれぞれをローカルで実行されている1つの異なるクラスターに接続したいだけです