2013-03-17 1 views
4

Я новичок в Django и Haystack. Я сделал все, что было предложено на странице «Начало работы» документации на Haystack и на странице отладки, но я не вижу, где моя ошибка. sqs.count() возвращает 0, хотя rebuild_index, похоже, работает, предоставляя правильное количество записей в индексируемых таблицах и создавая индексные файлы в каталоге whoosh_index.Django-haystack поиск с whoosh возвращает «Нет результатов» отладка неудачно

search_indexes имеет необходимые строки text =, у меня есть search_sites.py, я изменил параметры settings.py и urls.py, и у меня есть файлы [model_name] _text.txt в правом каталоге.

Мы работаем на университетском сервере, где нам нужно было обновить Django для работы с Haystack после того, как мы установили Haystack, потому что мы поняли, что это несовместимая версия (1.1 не 1.5). Может ли старый Django каким-то образом испортить установку Haystack ?

ответ

3

Следующий код покажет вам, что было проиндексировано - замените правильный путь для вашей установки.

from whoosh.index import open_dir 
ix = open_dir('<yourapp>/whoosh_indexes') 
from pprint import pprint 
pprint(list(ix.searcher().documents())) 

Если это не проливает свет, который вы должны будете размещать более подробную информацию о вашем коде - особенно search_indexes.py

+3

Что вы будете делать, если это покажет вам правильный список вещей, но вы все равно не получите никаких результатов? – GreenAsJade

0

Это может показаться очевидным, но я имел ту же ошибку, и чтение из http://django-haystack.readthedocs.org/en/latest/debugging.html I что я использовал неправильное имя атрибута для возвращаемых объектов.

ensure that {{ result.object.title }} corresponds to your model field 
    for instance I had name as the model filed but kept wondering why I didn't get results. 
    I had to change to {{ result.object.name }} to list my results 

имя было необходимым атрибутом. Надеюсь, это поможет кому-то.