django - 使用Haystack设置Elasticsearch

标签 django elasticsearch django-haystack

我曾经使用Whoosh作为搜索后端,但是现在我切换到elasticsearch并尝试使事情正常进行。

尝试重建索引时出现错误:

requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8000): Max retries exceeded with url: /_bulk?op_type=create (Caused by <class 'socket.error'>: [Errno 61] Connection refused)

以下是我的settings.py中的内容:
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
        'URL': 'http://localhost:8000/',
        'INDEX_NAME': 'haystack',
    },
}

我的问题是,URL的用途是什么?我正在本地运行以进行开发,并且已部署在Heroku上。

最佳答案

端口应为9200。

HAYSTACK_CONNECTIONS = {
'default': {
        'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
        'URL': 'http://127.0.0.1:9200/',
        'INDEX_NAME': 'haystack',
    },
}

另外,您必须确保使用的是haystack的开发版本(2.0)。

编辑:

您可能想通过执行以下命令首先确保ElasticSearch正在运行:
curl -XGET 'http://127.0.0.1:9200/my_index/_mapping?pretty=1'

关于django - 使用Haystack设置Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15692512/

相关文章:

django - 如何使用 django 建立对称关系模型?

python - 将 s3 文件限制为 Django 组用户

elasticsearch - Elasticsearch嵌套父子映射

python - 在 Haystack 中使用 "google-like"冒号搜索运算符

python - 使用Haystack的CircleCI Elasticsearch

django - 从我的Django应用容器中获取主机IP

javascript - 我可以将 Node.js 包与 Django 一起使用吗?

elasticsearch - 是否可以直接读取/解析elasticsearch索引文件?

Elasticsearch 按字段过滤文档组

python - Django haystack 继承问题