我有3个模型和3个索引,如(Modelname1Index,ModelName2Index,Modelname3Index)在搜索中_索引.py. 在
SearchQuerySet().filter是从这三者中搜索,但是我想分别搜索它们中的每一个。在
所以,我试着这样做:
SearchQuerySet().filter(text=query).models(required_model_name)
但是,它返回的是整个搜索结果(来自所有模型),而不是来自所提到的单个模型。在
另外,在执行重建索引时,第三个模型的no objects没有任何行。在
因此,.models(thirdmodel)返回空结果,但是.models(其他两个模型中的任何一个)返回整个结果。在
不幸的是,
.models()
过滤器在最新版本的Haystack和Whoosh中不能正常工作。您可以通过将Haystack降到2.0.0和Whoosh降到2.4.1来解决这个问题。
还要注意,使用Whoosh,在配置中尝试使用
HAYSTACK_SEARCH_RESULTS_PER_PAGE
时会出现一个bug,因此最好避免此设置。不过,这也不算太糟。
This is based partlyon James Lims answer,但这应该适用于任何版本的Haystack和Whoosh。不幸的是,没有一方真的来拯救这个问题,但下面的解决方案似乎并不太糟糕。在
那么
^{pr2}$SearchQuerySet
使用MySearchQuerySet
代替:相关问题 更多 >
编程相关推荐