我正在尝试了解django-haystack 教程,以便为我的应用程序添加搜索功能。不幸的是,在构建搜索索引时,我不太了解一些关键部分。
在本教程中,以下 django 模型作为示例:
class Note(models.Model):
user = models.ForeignKey(User)
pub_date = models.DateTimeField()
title = models.CharField(max_length=200)
body = models.TextField()
该Note
模型的相应索引类是这样的:
class NoteIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
author = indexes.CharField(model_attr='user')
pub_date = indexes.DateTimeField(model_attr='pub_date')
def get_model(self):
return Note
最后但同样重要的是,我被要求创建一个如下所示的数据模板:
{{ object.title }}
{{ object.user.get_full_name }}
{{ object.body }}
在阅读了整个教程之后,我仍然对现在被索引的内容感到困惑。据我了解,字段的内容author
将pub_date
用于创建索引。该字段text
仅用于提供一些设置。并且数据模板指定了搜索结果稍后将如何显示,即使用模型的哪些字段显示在搜索结果中。
这是正确的还是我完全错了?在我看来,教程和文档在很多方面都非常模糊。非常感谢您提前。