"Failed to establish a new connection" 尝试使用 elasticsearch-dsl Python 包访问 Elasticsearch Cloud 时
"Failed to establish a new connection" when trying to access Elasticsearch Cloud with elasticsearch-dsl Python package
我正在试验 Elasticsearch 并使用 elasticsearch-dsl
Python 包为一些 Django 数据编制索引。
我创建了一个相对基本的测试,search.py
,但是当我尝试索引任何数据时收到连接错误。
from elasticsearch_dsl.connections import connections
from elasticsearch_dsl import Document, Text
from elasticsearch.helpers import bulk
from elasticsearch import Elasticsearch
from . import models
connections.create_connection(hosts=['ELASTICSEARCH_ENDPOINT_URL'],
http_auth='USERNAME:PASSWORD')
class MyIndex(Document):
title = Text()
description = Text()
class Index:
name = 'my-index'
def bulk_indexing():
MyIndex.init()
es = Elasticsearch()
bulk(client=es, actions=(a.indexing() for a in models.MyModel.objects.all().iterator()))
当我 运行 bulk_indexing()
我得到以下错误:
elasticsearch.exceptions.ConnectionError: ConnectionError(<urllib3.connection.HTTPConnection object at 0x1282266d8>: Failed to establish a new connection: [Errno 61] Connection refused) caused by: NewConnectionError(<urllib3.connection.HTTPConnection object at 0x1282266d8>: Failed to establish a new connection: [Errno 61] Connection refused)
我怀疑语法错误或者我在创建连接时缺少一些凭据,但我找不到任何进一步的信息。
我正在使用通过 Elastic Cloud 部署的 Elasticsearch v7.4.0。当我通过浏览器访问 URL 时,我可以连接。
为什么不直接使用您的 Cloud ID(可以在 ES Cloud 控制台中找到)?
from elasticsearch import Elasticsearch
es = Elasticsearch(cloud_id="<some_long_cloud_id>", http_auth=('USERNAME','PASSWORD'))
我正在试验 Elasticsearch 并使用 elasticsearch-dsl
Python 包为一些 Django 数据编制索引。
我创建了一个相对基本的测试,search.py
,但是当我尝试索引任何数据时收到连接错误。
from elasticsearch_dsl.connections import connections
from elasticsearch_dsl import Document, Text
from elasticsearch.helpers import bulk
from elasticsearch import Elasticsearch
from . import models
connections.create_connection(hosts=['ELASTICSEARCH_ENDPOINT_URL'],
http_auth='USERNAME:PASSWORD')
class MyIndex(Document):
title = Text()
description = Text()
class Index:
name = 'my-index'
def bulk_indexing():
MyIndex.init()
es = Elasticsearch()
bulk(client=es, actions=(a.indexing() for a in models.MyModel.objects.all().iterator()))
当我 运行 bulk_indexing()
我得到以下错误:
elasticsearch.exceptions.ConnectionError: ConnectionError(<urllib3.connection.HTTPConnection object at 0x1282266d8>: Failed to establish a new connection: [Errno 61] Connection refused) caused by: NewConnectionError(<urllib3.connection.HTTPConnection object at 0x1282266d8>: Failed to establish a new connection: [Errno 61] Connection refused)
我怀疑语法错误或者我在创建连接时缺少一些凭据,但我找不到任何进一步的信息。
我正在使用通过 Elastic Cloud 部署的 Elasticsearch v7.4.0。当我通过浏览器访问 URL 时,我可以连接。
为什么不直接使用您的 Cloud ID(可以在 ES Cloud 控制台中找到)?
from elasticsearch import Elasticsearch
es = Elasticsearch(cloud_id="<some_long_cloud_id>", http_auth=('USERNAME','PASSWORD'))