为了账号安全,请及时绑定邮箱和手机立即绑定

尝试使用 elasticsearch-dsl Python 包访问 Elasticsearch

尝试使用 elasticsearch-dsl Python 包访问 Elasticsearch

绝地无双 2022-06-28 10:41:16
我正在试验 Elasticsearch 并使用elasticsearch-dslPython 包索引一些 Django 数据。我创建了一个相对基本的测试,search.py但是当我尝试索引任何数据时收到连接错误。from elasticsearch_dsl.connections import connectionsfrom elasticsearch_dsl import Document, Textfrom elasticsearch.helpers import bulkfrom elasticsearch import Elasticsearchfrom . import modelsconnections.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 时,我可以连接。
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

为什么不简单地使用您的 Cloud ID(您可以在 ES Cloud 控制台中找到)?


from elasticsearch import Elasticsearch

es = Elasticsearch(cloud_id="<some_long_cloud_id>", http_auth=('USERNAME','PASSWORD'))


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号