aboutsummaryrefslogtreecommitdiffstats
path: root/packages/trpc/routers/bookmarks.ts
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-03-30 15:44:17 +0000
committerMohamedBassem <me@mbassem.com>2024-03-30 15:44:17 +0000
commit853ed13450b3a0d92cba144cc0dfd0696e7c810c (patch)
tree7e654b5d32e7c4b8e69091c48dcab89eb7b50bad /packages/trpc/routers/bookmarks.ts
parente99dee0b4f7220568c8ffa2755147bc45d35b32b (diff)
downloadkarakeep-853ed13450b3a0d92cba144cc0dfd0696e7c810c.tar.zst
fix: Sort search results by relevance
Diffstat (limited to 'packages/trpc/routers/bookmarks.ts')
-rw-r--r--packages/trpc/routers/bookmarks.ts8
1 files changed, 8 insertions, 0 deletions
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<Record<string, number>>((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 };
}),