假设我想使用 django-haystack 搜索 3 个模型(注释、评论、文章),并设置了 3 个这样的索引。
class NoteIndex(SearchIndex):
text = CharField(document=True, use_template=True)
author = CharField(model_attr='user', faceted=True)
pub_date = DateTimeField(model_attr='pub_date')
class CommentIndex(SearchIndex):
text = CharField(document=True, use_template=True)
author = CharField(model_attr='user', faceted=True)
pub_date = DateTimeField(model_attr='pub_date')
class ArticleIndex(SearchIndex):
text = CharField(document=True, use_template=True)
author = CharField(model_attr='user', faceted=True)
pub_date = DateTimeField(model_attr='pub_date')
当我得到我的结果时,我可以使用作者方面来显示作者的结果数量。
>>> from haystack.query import SearchQuerySet
>>> sqs = SearchQuerySet().facet('author')
>>> sqs.facet_counts()
{
'dates': {},
'fields': {
'author': [
('john', 4),
('daniel', 2),
('sally', 1),
('terry', 1),
],
},
'queries': {}
}
但是我怎样才能找出模型类型有多少结果呢?例如。
注释:4 评论:2 文章:1
理想情况下,我想过滤它,就像一个正常的方面。我现在正在使用 FacetedModelSearchForm,我可以看到模型类型,只是无法获取计数值。这可能吗?如果是这样,怎么做?
类似问题:
看起来其他人也问过这个问题,但可能没有问得足够清楚。
这个类似,但他们只想按内容类型排序,我想按内容类型计数。
使用 django-haystack,如何按内容类型对结果进行排序
这是另一个类似的问题,但不完全相同,同样也没有答案。