用whoosh返回的Django-haystack搜索“无结果”调试失败

时间:2013-03-17 18:05:29

标签: django django-haystack whoosh

我是Django和Haystack的新手。我已经完成了Haystack文档的“入门”页面和调试页面上的所有建议,但我无法看到我的错误所在。即使sqs.count()似乎有效,rebuild_index也会返回0,在索引的表中提供正确数量的条目,并将索引文件生成到whoosh_index目录中。

search_indexes有必需的text =行,我有一个search_sites.py,我更改了settings.py和urls.py,右边有[model_name] _text.txt文件。目录

我们正在建立一个大学服务器,我们必须在安装Haystack之后更新Django才能与Haystack一起工作,因为我们意识到它是一个不兼容的版本(1.1不是1.5) - 老Django可能会以某种方式搞乱干草堆安装吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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是必需属性。希望这有助于某人。