gpt4 book ai didi

python - 如何使用 python API 连接到 Elasticsearch 中的特定集群

转载 作者:行者123 更新时间:2023-12-02 22:15:02 24 4
gpt4 key购买 nike

我有 2 个 elasticsearch 集群(不是节点),我想使用 python 官方 api 访问。

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

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

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

最佳答案

您应该确定每个集群在哪个端口上运行,然后像这样连接:

from elasticsearch import Elasticsearch

# Assumes 'elasticsearch-prod' is running 9400 and 'elasticsearch-traf' is running 9200
es_traf = Elasticsearch("localhost:9200")
es_prod = Elasticsearch("http://localhost:9400")

关于python - 如何使用 python API 连接到 Elasticsearch 中的特定集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23680347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com