我有一个带有模型的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是可达的。防火墙规则似乎也到位了
1条答案
按热度按时间pbwdgjma1#
Tldr
默认的http调用是在
80
和443
端口上进行的。默认情况下,弹性绑定到端口
9200
。溶液
检查弹性API端口是否为9200。
更新应用的配置以查询正确的端口。