有人可以向我展示如何使用属性过滤django-haystack的全文搜索结果吗?我在他们的网站上浏览了教程,但仍然确定如何使用haystack。
例如,假设我有一个 类产品:
class Product(models.Model):
title = models.CharField(max_length=200)
description = models.TextField()
category = models.CharField(max_length=10)
color = models.CharField(max_length=10)
如果我想在标题&上提供全文搜索描述,和 类别和过滤(基于下拉列表,而不是自由文本) 颜色 - 我需要做什么?我可以使用haystack附带的表单和视图吗?
感谢。
答案 0 :(得分:6)
你看过django-haystack网站上的 faceting tutorial/documentation了吗?它将引导您完成基于入门教程中介绍的Note
模型的作者的过滤示例。
与干草堆和搜索分开的另一个选项是Alex Gaynor的django-filter
,它允许您根据模型的内容而不是索引来过滤字段。因此,它可以用于未使用django-haystack
索引的模型。您可以查看存储库here。 doc文件夹中有很好的文档,包含的测试显示了所有功能。
答案 1 :(得分:0)
如果我们总结如何添加干草堆分面
title = CharField(model_attr='title', faceted=True) description = CharField(model_attr='description', faceted=True)
sqs = SearchQuerySet().facet('title').facet('description')
url(r'^$', FacetedSearchView(form_class=FacetedSearchForm, searchqueryset=sqs), name='haystack_search'),
为您的模板添加分面部分,例如http://docs.haystacksearch.org/dev/faceting.html#display-the-facets-in-the-template
重建索引以查看分面效果
python manage.py rebuild_index