0

我很难在 SearchQuerySet() (django-haystack) 中返回“或”查询的结果。

在某些情况下它有效,但在其他情况下则无效,所以我想知道这是否与我调用“或”查询的方式有关。

目前,我想匹配用户搜索的类别中的餐厅 + 该类别的自由形式搜索。这就是我所拥有的:

restaurants = SearchQuerySet().filter_or(category__name=self.query)\
                            .filter_or(content=Raw(self.query))\
                            .order_by('-weight')\
                            .models(Restaurant)

本质上,返回的结果应该是(类别结果)+(自由形式结果)。这里可能是什么问题?

4

1 回答 1

0

filter_or需要将参数全部包含在同一个调用中。这应该起作用:

restaurants = SearchQuerySet().filter_or(
                                category__name=self.query,
                                content=Raw(self.query)
                             ).order_by('-weight').models(Restaurant)
于 2016-02-09T23:02:08.930 回答