如何将相关数据添加到haystack模型索引?

时间:2011-02-20 19:08:31

标签: python django django-haystack

我已经将干草堆搜索添加到我刚刚开始的django应用程序中,并设法使用模板功能为模型创建索引。出于某种原因,我无法将相关数据添加到此模板索引中。我正在尝试以下方法:

{{object.name}}
{% for tag in object.tags.all %}
{{tag.name}}
{% endfor %}

正确添加索引,我在object.name属性上获得搜索结果,但在相关标签上没有。我通过在普通页面模板中使用相同的模板结构并验证tag.name值是否输出到屏幕来验证关系是否正确。

如何调试索引创建?我目前正在使用简单的搜索后端,所以我相信索引存在于内存中。

这是我的search_indexes.py

from data.models import VendingMachine
from haystack.indexes import *
from haystack import site


class VendingMachineIndex(SearchIndex):
    text = CharField(document=True, use_template=True)

site.register(VendingMachine, VendingMachineIndex)

有问题的文件名为vendingmachine_text.txt,位于templates / search / indexes / data /,其中data是应用程序名称。

1 个答案:

答案 0 :(得分:1)

我认为问题在于“简单”的搜索后端。它是新的,仅适用于伪造搜索功能。尝试使用嗖嗖,索尔或xapian。

我看过haystack/backends/simple.py。此后端是基于ORM的,它没有内存中的搜索索引。只按模型字段搜索才有效。