Я экспериментирую с Elasticsearch и индексирую некоторые данные Django, используя пакет elasticsearch-dsl
Python.
Я создал сравнительно простой тест 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)
Я подозреваю, что синтаксис неправильный или я пропускаю некоторыеучетные данные при создании соединения, но я не могу найти дополнительную информацию.
Я использую Elasticsearch v7.4.0, развернутый с использованием Elastic Cloud. Я могу подключиться, когда у меня есть доступ к URL через мой браузер.