1

我已将 haystack search 添加到我刚刚起步的 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 是应用程序名称。

4

1 回答 1

1

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

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

于 2011-02-20T21:30:19.607 回答