我正在尝试使用软件包django-elasticsearch-dsl
将ElasticSearch与Django项目集成在一起,但出现此错误:
>> $ curl -X GET http://localhost:9200
curl: (7) Failed to connect to localhost port 9200: Connection refused
我使用以下命令下载了django-elasticsearch-dsl
:
pip install https://github.com/sabricot/django-elasticsearch-dsl/archive/6.4.0.tar.gz
和
pip install django-elasticsearch-dsl
,但它们都导致相同的结果。
我不认为这是重复的问题,因为我阅读的与此错误有关的所有其他问题都只涉及ElasticSearch库,而不涉及django-elasticsearch-dsl
库。后者建立在前者的基础上,但是我似乎找不到所有其他文章中都详细介绍的elasticsearch.yml
文件。
这是我的虚拟环境中安装的内容:
>> pip freeze
Django==2.2.2
django-elasticsearch-dsl==6.4.0
elasticsearch==7.0.2
elasticsearch-dsl==7.0.0
lazy-object-proxy==1.4.1
mccabe==0.6.1
pylint==2.3.1
python-dateutil==2.8.0
pytz==2019.1
requests==2.22.0
typed-ast==1.4.0
urllib3==1.25.3
根据this tutorial,命令http://127.0.0.1:9200
应该返回看起来像JSON响应的内容,但出现错误:
curl: (7) Failed to connect to localhost port 9200: Connection refused
答案 0 :(得分:0)
您是否为每个应用制作了document.py?您需要使其将数据推送到elasticsearch数据库。但是首先,您需要正确安装elasticsearch(如果您的情况未正确安装)。
尝试使用本教程来安装elasticsearch,我最近使用它,并且像魅力一样发挥作用。
这是elasticsearch.yml(/etc/elasticsearch/elasticsearch.yml)的路径。
别忘了使用-sudo systemctl start elasticsearch启动它(使用-sudo systemctl status elasticsearch检查其状态)