gpt4 book ai didi

django - Django Haystack-在非索引多对多字段中搜索

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

有没有一种方法可以仅将模型的经过过滤的部分作为SeachQuerySet?

就像是:

查询= SearchQuerySet()。models(Entry.filter(categories__name ='something'))

代替

查询= SearchQuerySet()。models(条目)

我要过滤的字段是一个多字段并且没有索引。

最佳答案

搜索索引不存储任何关系,因此它是“平坦的”。您只能将类别的ID添加到Entry的索引中(请注意,您必须为此使用prepare_ -method):

class EntryIndex(indexes.SearchIndex, indexes.Indexable):
# your other fields
categories = MultiValueField()

def prepare_categories(self, obj):
return [category.pk for category in obj.categories.all()]

您可以执行以下操作:
category = Category.objects.get(name='something')
sqs = SearchQuerySet().models(Entry).filter(categories=category.pk)

关于django - Django Haystack-在非索引多对多字段中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11933315/

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