我正在使用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”作为用户可用于搜索应用程序内容的字段。有没有其他方法可以让它接受多个字段?
提前致谢!
答案 0 :(得分:1)
使用模板并添加您希望在搜索中找到的字段
像
{{ object.autor }}
{{ object.titulo }}
{{ object.datalivro }}
答案 1 :(得分:0)
您应该在text
字段中连接您要搜索的所有字段。通常您通过模板而不是prepare
方法执行此操作。有关说明,请参阅the tutorial。