我有2个弹性搜索集群(不是节点)我想使用python官方api访问 .

我更改了每个elasticsearch集群的配置文件中的Cluster行:

cluster.name: elasticsearch_prod
cluster.name: elasticsearch_traf

但我找不到连接到第二个集群的方法,两者都在运行(本地) .

似乎可以将参数传递给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', [...]

我想将我的集群放在不同的机器上,因此我不想使用不同的索引 .

谢谢

编辑:我也尝试连接到希望集群中的节点,但我无法使其工作 . 我的两个运行节点有这些名称(自动:))

'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让我觉得我做得不对......

正如评论中所述,我不是在寻找部落,我想,我只想让两个客户端连接到本地运行的一个不同的集群