2012-05-22 15 views
5

Tôi đang sử dụng django-haystackWhoosh trên máy chủ Ubuntu của tôi và thấy rằng các truy vấn tìm kiếm nhất định chỉ tăng một trang lỗi, và tôi không có ý tưởng tại sao điều này đang xảy ra ...Django Haystack lỗi ngẫu nhiên sử dụng bất ngờ tới thăm

Tôi đang sử dụng những người sau đây

Whoosh==2.4.0 
django-haystack==1.2.7 

Và tôi cũng chạy python manage.py update_index một lần mỗi giờ

Ví dụ traceback

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

Tôi đã nhận thấy hành vi tương tự đang chạy với Xapian, vì vậy tôi không nghĩ rằng đó là chương trình phụ trợ liên quan. Bạn có thể sử dụng thẻ 'highlight', vì nó được thiết kế kém và tăng ngoại lệ ẩn này khi' result' là 'None'. Bây giờ tại sao 'result' là' None' là một câu hỏi hoàn toàn khác. Nó giống như một con bọ. –

+0

@ChrisPratt cảm ơn vì phản hồi, tôi hiện không sử dụng thẻ đánh dấu, nhưng tôi cảm thấy khá bực mình khi người khác đang gặp phải những vấn đề này và rất ít biết cách sửa chữa ... – ApPeL

Trả lời

0

Bạn có thể đặt ở đây chế độ xem và mã mẫu của bạn không? Nếu điều này xảy ra chỉ với một số truy vấn chứ không phải tất cả các truy vấn, thì đó có thể là các tham số mà bạn đang chuyển đến chế độ xem. Dưới đây là đoạn code của xem Tôi đang sử dụng để làm cho các truy vấn tìm kiếm sử dụng Haystack 2.0 và bất ngờ tới thăm 2.3.2 trong một dự án của riêng tôi:

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

và điều này làm việc hoàn toàn tốt đẹp. Tôi đoán bạn nên xem xét sử dụng phiên bản mới nhất của Haystack, bởi vì tôi đã trải qua rất nhiều lỗi với những phiên bản cũ ổn định. Và tôi khuyên bạn nên sử dụng "rebuild_index" một lần trong một thời gian quá, chỉ trong trường hợp.

+0

Không thể nói cho OP, nhưng ít nhất là trong trường hợp của tôi: Tôi đang sử dụng chế độ xem tìm kiếm do Haystack cung cấp, do đó không có tùy chỉnh ở đó. Tôi đang chạy khỏi nhánh master của Haystack và một công việc cron cập nhật chỉ mục mỗi giờ. Nhưng, cảm ơn vì đã trả lời. Như tôi đã nói, tôi không thể nói cho OP, vì vậy có lẽ lời khuyên của bạn sẽ kết thúc có ích cho họ. –

Các vấn đề liên quan