2012-05-22 9 views
5

que estoy usando django-haystack y Whoosh en mi servidor de Ubuntu y hallazgo de que ciertas consultas de búsqueda acaba de plantear una página de error, y no tengo ni idea de por qué esto está ocurriendo ...Django Haystack errores aleatorios usando Whoosh

estoy usando las siguientes

Whoosh==2.4.0 
django-haystack==1.2.7 

Y también corro python manage.py update_index una vez cada hora

Ejemplo de rastreo

Traceback (most recent call last): 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response 
    response = callback(request, *callback_args, **callback_kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/newrelic-1.2.0.246/newrelic/hooks/framework_django.py", line 430, in __call__ 
    return self.__wrapped(*args, **kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/haystack/views.py", line 50, in __call__ 
    return self.create_response() 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/haystack/views.py", line 145, in create_response 
    return render_to_response(self.template, context, context_instance=self.context_class(self.request)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/shortcuts/__init__.py", line 20, in render_to_response 
    return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/loader.py", line 188, in render_to_string 
    return t.render(context_instance) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 123, in render 
    return self._render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/newrelic-1.2.0.246/newrelic/api/function_trace.py", line 82, in __call__ 
    return self._nr_next_object(*args, **kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 117, in _render 
    return self.nodelist.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 127, in render 
    return compiled_parent._render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/newrelic-1.2.0.246/newrelic/api/function_trace.py", line 82, in __call__ 
    return self._nr_next_object(*args, **kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 117, in _render 
    return self.nodelist.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/newrelic-1.2.0.246/newrelic/hooks/framework_django.py", line 622, in __call__ 
    return self.__wrapped(*args, **kwargs) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 64, in render 
    result = block.nodelist.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 311, in render 
    return self.nodelist_true.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 744, in render 
    bits.append(self.render_node(node, context)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 757, in render_node 
    return node.render(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 227, in render 
    nodelist.append(node.render(context)) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 915, in render 
    resolved_vars = [var.resolve(context) for var in self.vars_to_resolve] 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 653, in resolve 
    value = self._resolve_lookup(context) 

File "/home/fundedbyme/.virtualenvs/fundedbyme/local/lib/python2.7/site-packages/django/template/base.py", line 692, in _resolve_lookup 
    raise VariableDoesNotExist("Failed lookup for key [%s] in %r", (bit, current)) # missing attribute 

VariableDoesNotExist: Failed lookup for key [object] in u'None' 


<WSGIRequest 
GET:<QueryDict: {u'q': [u'stockholm']}>, 
+2

He notado el mismo comportamiento en contra de Xapian, así que no creo que esté relacionado con el back-end. Lo más probable es que estés usando la etiqueta 'highlight', porque está mal diseñada y plantea esta obtusa excepción cuando' result' es 'None'. Ahora por qué 'result' es' None' es una pregunta totalmente diferente. Se siente como un error. –

+0

@ChrisPratt gracias por la respuesta, actualmente no estoy usando la etiqueta resaltada, pero me resulta bastante frustrante que otras personas tengan estos problemas y muy poco saben cómo solucionarlo ... – ApPeL

Respuesta

0

¿Podría poner aquí su vista y su código de plantilla? Si esto sucede solo con algunas consultas y no con todas ellas, podrían ser los parámetros que está pasando a la vista. Aquí está el código de la opinión de que estoy usando para hacer consultas de búsqueda utilizando Haystack 2.0 y 2.3.2 Whoosh en un proyecto de mi propia:

def search(request): 
    sqs = SearchQuerySet().filter(content=AutoQuery(request.GET['q'])) 
return render_to_response('search.html', {'sqs': sqs,}) 

y esto funciona perfectamente bien. Supongo que deberías considerar usar la última versión de Haystack, porque estaba experimentando muchos errores con los viejos estables. Y te recomiendo que uses el "rebuild_index" de vez en cuando, por si acaso.

+0

No puedo hablar por el OP, pero al menos en mi caso: estoy usando la vista de búsqueda proporcionada por Haystack, por lo que no hay personalización allí. Me estoy escapando de la sucursal maestra de Haystack y un trabajo cron actualiza el índice cada hora. Pero, gracias por responder. Como dije, no puedo hablar por el OP, así que tal vez su consejo termine siendo útil para ellos. –

Cuestiones relacionadas