pal*_*alo 6 django-haystack elasticsearch
我使用带有弹性搜索的django-haystack,但索引存在问题.重建我的索引时
python manage.py rebuild_index引发以下错误:
Traceback (most recent call last):
File "/home/palo/.virtualenvs/toro/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 210, in handle_label
self.update_backend(label, using)
File "/home/palo/.virtualenvs/toro/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 256, in update_backend
do_update(backend, index, qs, start, end, total, self.verbosity)
File "/home/palo/.virtualenvs/toro/local/lib/python2.7/site-packages/haystack/management/commands/update_index.py", line 78, in do_update
backend.update(index, current_qs)
File "/home/palo/.virtualenvs/toro/local/lib/python2.7/site-packages/haystack/backends/elasticsearch_backend.py", line 177, in update
self.conn.bulk_index(self.index_name, 'modelresult', prepped_docs, id_field=ID)
File "/home/palo/.virtualenvs/toro/src/pyelasticsearch/pyelasticsearch/client.py", line 95, in decorate
return func(*args, query_params=query_params, **kwargs)
File "/home/palo/.virtualenvs/toro/src/pyelasticsearch/pyelasticsearch/client.py", line 366, in bulk_index
query_params=query_params)
File "/home/palo/.virtualenvs/toro/src/pyelasticsearch/pyelasticsearch/client.py", line 221, in send_request
**({'data': request_body} if body else {}))
File "/home/palo/.virtualenvs/toro/src/requests/requests/sessions.py", line 387, in post
return self.request('POST', url, data=data, **kwargs)
File "/home/palo/.virtualenvs/toro/src/requests/requests/sessions.py", line 345, in request
resp = self.send(prep, **send_kwargs)
File "/home/palo/.virtualenvs/toro/src/requests/requests/sessions.py", line 448, in send
r = adapter.send(request, **kwargs)
File "/home/palo/.virtualenvs/toro/src/requests/requests/adapters.py", line 324, in send
raise Timeout(e)
Timeout: HTTPConnectionPool(host='127.0.0.1', port=9200): Request timed out. (timeout=10)
Timeout: HTTPConnectionPool(host='127.0.0.1', port=9200): Request timed out. (timeout=10)
我使用了django-haystack - 2.0.0-beta,pyelasticsearch - 0.5,elasticsearch 0.20.6,java version"1.6.0_24"
干草堆设置
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
'URL': 'http://127.0.0.1:9200/',
'INDEX_NAME': 'haystack',
},
}
我确定我的弹性搜索服务正在运行.
Mar*_* B. 14
这并不一定意味着你的es服务器已关闭,特别是如果你得到了合理的返回curl -I "127.0.0.1:9200".更可能的是,考虑到所涉及的连接速度,这是您的请求的问题,根本没有足够的时间.
有趣的是,在pyelasticsearch设置默认的超时时间为60秒,看def __init__(self, urls, timeout=60, max_retries=0, revival_delay=300):在https://github.com/rhec/pyelasticsearch/blob/master/pyelasticsearch/client.py.然而,干草堆将覆盖使用其默认设置,即10秒,按照self.timeout = connection_options.get('TIMEOUT', 10)在https://github.com/toastdriven/django-haystack/blob/master/haystack/backends/__init__.py.
如您所见,haystack允许您通过添加'TIMEOUT': 60,引擎配置轻松修改设置.
并解决了:)
| 归档时间: |
|
| 查看次数: |
3232 次 |
| 最近记录: |