Elasticsearch拒绝连接到Python Django

kadbb459  于 2023-05-06  发布在  ElasticSearch
关注(0)|答案(1)|浏览(152)

我有一个带有模型的Django项目:

class ParentFoodDirectory(TimeStampedModel):
    uuid = models.UUIDField(default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=1000, null=False, blank=False)
    active = models.BooleanField(null=False, blank=False, default=True)
    p_id = models.IntegerField(null=False, blank=False)

    class Meta:
        verbose_name_plural = "Parent Food Items"

    def __str__(self):
        return self.name

这个模型有超过1000万个对象。这方面的搜索变得非常缓慢,这就是为什么我决定使用ElasticSearch。我在另一个示例上设置了Elasticsearch,并在机器上使用了ngnix。现在,ElasticSearch可通过ext IP实现。然后,为了将此模式Map到ElasticSearch上,我制作了一个dcouments.py文件:

from django_elasticsearch_dsl import Document, fields
from django_elasticsearch_dsl.registries import registry
from .models import ParentFoodDirectory

@registry.register_document
class ParentFoodDirectoryDocument(Document):
    name = fields.TextField()
    active = fields.BooleanField()
    p_id = fields.IntegerField()

    class Index:
        name = 'parentfooddirectory'

    class Django:
        model = ParentFoodDirectory

我在设置中提到了主机:

ELASTICSEARCH_HOST = 'http://35.141.96.246/'
ELASTICSEARCH_DSL = {
    'default': {
        'hosts': '35.141.96.246',
    },
}

使用python manage.py search_index --rebuild命令重建时出现以下错误:

elasticsearch.exceptions.ConnectionError: ConnectionError(<urllib3.connection.HTTPConnection object at 0x7f49febf8d90>: Failed to establish a new connection: [Errno 111] Connection refused) caused by: NewConnectionError(<urllib3.connection.HTTPConnection object at 0x7f49febf8d90>: Failed to establish a new connection: [Errno 111] Connection refused)

任何可能发生的事情的线索。ElasticSearch是可达的。防火墙规则似乎也到位了

pbwdgjma

pbwdgjma1#

Tldr

默认的http调用是在80443端口上进行的。
默认情况下,弹性绑定到端口9200

溶液

检查弹性API端口是否为9200。
更新应用的配置以查询正确的端口。

相关问题