self.prepared_data中有多个索引字段

时间:2012-03-22 03:32:08

标签: python django django-haystack whoosh

我正在使用Haystack和Whoosh与Django,我试图通过以下代码创建索引:

class LivroIndex(SearchIndex):
    text = CharField(document=True, use_template=True)
    autor = CharField(model_attr='Autor')
    titulo =  CharField(model_attr='Titulo')
    datalivro = DateTimeField(model_attr='DataLivro')


    def index_queryset(self):
        return Livro.objects.filter(DataLivro__lte=datetime.datetime.now())


    def prepare(self, obj):
        self.prepared_data = super(LivroIndex, self).prepare(obj)
        self.prepared_data['text'] = obj.Autor
        return self.prepared_data

Livro是我的模型文件中的一个类。

通过这种方式,您只能使用“autor”作为用户可用于搜索应用程序内容的字段。有没有其他方法可以让它接受多个字段?

提前致谢!

2 个答案:

答案 0 :(得分:1)

使用模板并添加您希望在搜索中找到的字段

{{ object.autor }}
{{ object.titulo  }}
{{ object.datalivro }}

答案 1 :(得分:0)

您应该在text字段中连接您要搜索的所有字段。通常您通过模板而不是prepare方法执行此操作。有关说明,请参阅the tutorial