1

我曾经用作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 上。

4

1 回答 1

4

端口应该是 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'
于 2013-03-28T23:28:06.380 回答