Telemeta
Telemeta copied to clipboard
CustomElasticEngine doesn't index when editing an item
telemeta.util.backend.CustomElasticEngine is still buggy :
Traceback (most recent call last):
File "/opt/miniconda/lib/python2.7/site-packages/django/core/handlers/base.py", line 112, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/opt/miniconda/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in view
return self.dispatch(request, *args, **kwargs)
File "/opt/miniconda/lib/python2.7/site-packages/django/utils/decorators.py", line 29, in _wrapper
return bound_func(*args, **kwargs)
File "/opt/miniconda/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 22, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/opt/miniconda/lib/python2.7/site-packages/django/utils/decorators.py", line 25, in bound_func
return func(self, *args2, **kwargs2)
File "/srv/src/telemeta/telemeta/views/item.py", line 676, in dispatch
return super(ItemEditView, self).dispatch(*args, **kwargs)
File "/opt/miniconda/lib/python2.7/site-packages/django/views/generic/base.py", line 87, in dispatch
return handler(request, *args, **kwargs)
File "/opt/miniconda/lib/python2.7/site-packages/extra_views/advanced.py", line 151, in post
return super(BaseUpdateWithInlinesView, self).post(request, *args, **kwargs)
File "/opt/miniconda/lib/python2.7/site-packages/extra_views/advanced.py", line 105, in post
return self.forms_valid(form, inlines)
File "/srv/src/telemeta/telemeta/views/item.py", line 643, in forms_valid
item = form.save()
File "/opt/miniconda/lib/python2.7/site-packages/django/forms/models.py", line 446, in save
construct=False)
File "/opt/miniconda/lib/python2.7/site-packages/django/forms/models.py", line 99, in save_instance
instance.save()
File "/srv/src/telemeta/telemeta/models/item.py", line 174, in save
super(MediaItem, self).save(force_insert, force_update, *args, **kwargs)
File "/srv/src/telemeta/telemeta/models/core.py", line 135, in save
super(ModelCore, self).save(force_insert, force_update, *args, **kwargs)
File "/opt/miniconda/lib/python2.7/site-packages/django/db/models/base.py", line 545, in save
force_update=force_update, update_fields=update_fields)
File "/opt/miniconda/lib/python2.7/site-packages/django/db/models/base.py", line 582, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/opt/miniconda/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 185, in send
response = receiver(signal=self, sender=sender, **named)
File "/srv/src/django-haystack/haystack/signals.py", line 52, in handle_save
index.update_object(instance, using=using)
File "/srv/src/django-haystack/haystack/indexes.py", line 282, in update_object
backend.update(self, [instance])
File "/srv/src/django-haystack/haystack/backends/elasticsearch_backend.py", line 193, in update
bulk(self.conn, prepped_docs, index=self.index_name, doc_type='modelresult')
File "/opt/miniconda/lib/python2.7/site-packages/elasticsearch/helpers/__init__.py", line 182, in bulk
for ok, item in streaming_bulk(client, actions, **kwargs):
File "/opt/miniconda/lib/python2.7/site-packages/elasticsearch/helpers/__init__.py", line 155, in streaming_bulk
raise BulkIndexError('%i document(s) failed to index.' % len(errors), errors)
BulkIndexError: ('1 document(s) failed to index.', [{u'index': {u'status': 503, u'_type': u'modelresult', u'_id': u'telemeta.mediaitem.66441', u'error': u"UnavailableShardsException[[telemeta-crem][0] Primary shard is not active or isn't assigned to a known node. Timeout: [1m], request: org.elasticsearch.action.bulk.BulkShardRequest@29c3a63e]", u'_index': u'telemeta-crem'}}])
Workaround : use haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine instead
seems to be related to the last 1.X version of ElasticSearch. Please do python manage.py rebuild_index