From 32ee62deae06eb4a35d52be5a54f9a6c4cb2b03d Mon Sep 17 00:00:00 2001 From: charles Date: Tue, 10 Feb 2026 13:49:50 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F(backend)=20improve=20get=5Fv?= =?UTF-8?q?isited=5Fdocument=5Fids=5Fof?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I am removing the Subquery to improve the performance Signed-off-by: charles --- src/backend/core/services/search_indexers.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/backend/core/services/search_indexers.py b/src/backend/core/services/search_indexers.py index 493c8502..1a364706 100644 --- a/src/backend/core/services/search_indexers.py +++ b/src/backend/core/services/search_indexers.py @@ -8,7 +8,6 @@ from functools import cache from django.conf import settings from django.contrib.auth.models import AnonymousUser from django.core.exceptions import ImproperlyConfigured -from django.db.models import Subquery from django.utils.module_loading import import_string import requests @@ -78,7 +77,9 @@ def get_visited_document_ids_of(queryset, user): if isinstance(user, AnonymousUser): return [] - qs = models.LinkTrace.objects.filter(user=user) + visited_ids = models.LinkTrace.objects.filter(user=user).values_list( + "document_id", flat=True + ) docs = ( queryset.exclude(accesses__user=user) @@ -86,7 +87,7 @@ def get_visited_document_ids_of(queryset, user): deleted_at__isnull=True, ancestors_deleted_at__isnull=True, ) - .filter(pk__in=Subquery(qs.values("document_id"))) + .filter(pk__in=visited_ids) .order_by("pk") .distinct("pk") )