Я пытаюсь придумать учебник 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
просто для предоставления некоторых настроек. Шаблон данных указывает, как будут отображаться результаты поиска позже, то есть, какие поля модели будут отображаться в результатах поиска.
Является ли это правильным или я совершенно неправ? На мой взгляд, учебник и документация довольно расплывчаты во многих аспектах. Большое вам спасибо заранее.