From d6610ef57485afbbccc09f353b7ed160c48a4c8c Mon Sep 17 00:00:00 2001 From: silberengel Date: Sat, 23 Aug 2025 22:48:45 +0200 Subject: [PATCH] fix search result prioritization --- src/lib/utils/subscription_search.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/utils/subscription_search.ts b/src/lib/utils/subscription_search.ts index 3b06452..b0c33d8 100644 --- a/src/lib/utils/subscription_search.ts +++ b/src/lib/utils/subscription_search.ts @@ -1473,13 +1473,20 @@ async function performSecondOrderSearchInBackground( console.warn("subscription_search: Prioritization failed, using simple sorting:", error); // Fallback to simple sorting if prioritization fails prioritizedSecondOrder = deduplicatedSecondOrder.sort((a, b) => { - // Prioritize events from target pubkey first + // Prioritize events from target pubkey first (for n: searches) if (targetPubkey) { const aIsTarget = a.pubkey === targetPubkey; const bIsTarget = b.pubkey === targetPubkey; if (aIsTarget && !bIsTarget) return -1; if (!aIsTarget && bIsTarget) return 1; } + + // Prioritize by event kind (for t: searches and general prioritization) + const aIsPrioritized = PRIORITIZED_EVENT_KINDS.has(a.kind || 0); + const bIsPrioritized = PRIORITIZED_EVENT_KINDS.has(b.kind || 0); + if (aIsPrioritized && !bIsPrioritized) return -1; + if (!aIsPrioritized && bIsPrioritized) return 1; + // Then sort by creation time (newest first) return (b.created_at || 0) - (a.created_at || 0); }).slice(0, SEARCH_LIMITS.SECOND_ORDER_RESULTS);