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 ファセット
これは似ていますが、コンテンツ タイプで並べ替えたいだけです。コンテンツ タイプごとにカウントしたいのです。
django-haystack を使用して、結果をコンテンツ タイプ別に並べ替えるにはどうすればよいですか
これは別の同様の質問ですが、まったく同じではありません。また、回答もありません。