1

我是干草堆的新手。我不明白为什么我们必须使用模板来呈现我们想要搜索的文本。更简单,为什么我们不必使用这样的东西?

text = indexes.CharField(document=True, "and here the attributes to search")

更新 更具体地说,假设我们有一个应用程序places,这里是一个模型countries。在模型中,我希望可以从 haystack 中搜索字段capitalbiggest_cities. 所以在 search_indexes.py 我把

text = indexes.CharField(document=True, use_template=True )

在路径 search/indexes/places/countries_text.txt 中制作模板后,我把

{{ object.capital }}
{{ object.biggest_cites }}

问题又是:为什么我们必须使用模板来实现我们的目标?

使用类似的东西不会更容易

text = indexes.CharField(document=Truer, model_attr='capital',model_attr='biggest_cites')
4

1 回答 1

1

你读过这个 Haystack 文档页面http://django-haystack.readthedocs.org/en/latest/searchindex_api.html吗?

如果你没有,你必须。如果有,请再读一遍。

SearchIndex API 包含有关 Haystack 如何在您的项目中工作的宝贵基础知识。它还可以让您深入了解“为什么使用模板使数据可搜索”。

为什么我们必须使用模板来实现我们的目标?

来自 Haystack 文档:

“...我们在文本字段中提供 use_template=True。这允许我们使用数据模板(而不是容易出错的连接)来构建搜索引擎将在搜索中使用的文档”

如您所见,我们可以选择是否使用模板。

ps:抱歉发晚了;我希望它对你有帮助。

于 2013-09-23T16:57:24.120 回答