From 853ed13450b3a0d92cba144cc0dfd0696e7c810c Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Sat, 30 Mar 2024 15:44:17 +0000 Subject: fix: Sort search results by relevance --- packages/trpc/routers/bookmarks.ts | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'packages/trpc') diff --git a/packages/trpc/routers/bookmarks.ts b/packages/trpc/routers/bookmarks.ts index bcf200a3..4fb29c4c 100644 --- a/packages/trpc/routers/bookmarks.ts +++ b/packages/trpc/routers/bookmarks.ts @@ -361,11 +361,18 @@ export const bookmarksAppRouter = router({ } const resp = await client.search(input.text, { filter: [`userId = '${ctx.user.id}'`], + showRankingScore: true, + attributesToRetrieve: ["id"], + sort: ["createdAt:desc"], }); if (resp.hits.length == 0) { return { bookmarks: [], nextCursor: null }; } + const idToRank = resp.hits.reduce>((acc, r) => { + acc[r.id] = r._rankingScore!; + return acc; + }, {}); const results = await ctx.db.query.bookmarks.findMany({ where: and( eq(bookmarks.userId, ctx.user.id), @@ -385,6 +392,7 @@ export const bookmarksAppRouter = router({ asset: true, }, }); + results.sort((a, b) => idToRank[b.id] - idToRank[a.id]); return { bookmarks: results.map(toZodSchema), nextCursor: null }; }), -- cgit v1.2.3-70-g09d2