2013-03-17 41 views
4

我是Django和Haystack的新手。我已经完成了Haystack Documentation的“入门”页面和调试页面上的所有建议,但是我看不到我的错误在哪里。 sqs.count()返回0,即使rebuild_index似乎工作,给表中正确数量的条目进行索引并生成索引文件到whoosh_index目录中。带有whoosh的Django-haystack搜索返回'没有结果'调试失败

search_indexes有要求的text =行,我有一个search_sites.py,我改变了settings.py和urls.py,并且在正确的目录中有[model_name] _text.txt文件。

我们,我们必须更新的Django与草垛我们安装草垛后工作,因为我们意识到这是一个不兼容的版本(1.1不是1.5)大学服务器上工作 - 可以在旧的Django有草堆安装不知何故乱?

回答

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 2014-12-11 07:31:22

0

这似乎是显而易见的,但我有同样的错误,并从http://django-haystack.readthedocs.org/en/latest/debugging.html我读发现我为返回的对象使用了错误的属性名称。

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 

name是必需的属性。希望这可以帮助某人。