diff --git a/apps/news/models.py b/apps/news/models.py index c9fa3c8d..fed4da82 100644 --- a/apps/news/models.py +++ b/apps/news/models.py @@ -186,7 +186,8 @@ class NewsQuerySet(TranslationQuerysetMixin): _query |= elasticsearch_dsl.Q('wildcard', **{key: {'value': f'*{search_value}*', 'boost': boost + 30}}) search = NewsDocument.search().query('bool', should=_query)[0:10000].execute() ids = [result.meta.id for result in search] - preserved = Case(*[When(pk=pk, then=pos) for pos, pk in enumerate(ids)]) + ids_order = enumerate(ids) + preserved = Case(*[When(pk=pk, then=pos) for pos, pk in ids_order]) return self.filter(id__in=ids).order_by(preserved) def trigram_search(self, search_value: str):