gpt4 book ai didi

django-haystack - 模型类型上的 Django Haystack 分面

转载 作者:行者123 更新时间:2023-12-04 19:18:13 26 4
gpt4 key购买 nike

我想根据返回的不同模型名称(类)对结果进行分面。是否有捷径可寻?

最佳答案

您是否尝试添加 SearchIndex字段与此信息?例如。

class NoteIndex(SearchIndex, indexes.Indexable):
title = CharField(model_attr='title')
facet_model_name = CharField(faceted=True)

def get_model(self):
return Note

def prepare_facet_model_name(self, obj):
return "note"


class MemoIndex(SearchIndex, indexes.Indexable):
title = CharField(model_attr='title')
facet_model_name = CharField(faceted=True)

def get_model(self):
return Memo

def prepare_facet_model_name(self, obj):
return "memo"

依此类推,只需为每个搜索索引返回不同的字符串。您还可以创建一个 mixin 并返回由 get_model 返回的模型的名称。也。

假设您已将此字段添加到您的每个 SearchIndex定义,只是 chain the facet method到你的结果。
results = form.search().facet('facet_model_name')

现在 facet_counts方法将返回一个字典,其中包含分面字段和每个分面值的结果计数,在本例中为模型名称。

请注意,此处的字段被详细标记以避免与 model_name 可能发生冲突。 ,由 Haystack 添加的字段。它不是多面的,我不确定复制它是否会导致冲突。

关于django-haystack - 模型类型上的 Django Haystack 分面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6809811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com