diff options
| author | MohamedBassem <me@mbassem.com> | 2025-07-27 19:37:11 +0100 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2025-07-27 19:37:11 +0100 |
| commit | b94896a0f8fa43b957a9bdd6ab57ada0ab8101af (patch) | |
| tree | ed8f79ce7d407379fa0d8210db52959f849fac0e /packages/trpc | |
| parent | 7bb7f18fbf8e374efde2fe28bacfc29157b9fa19 (diff) | |
| download | karakeep-b94896a0f8fa43b957a9bdd6ab57ada0ab8101af.tar.zst | |
refactor: Extract meilisearch as a plugin
Diffstat (limited to 'packages/trpc')
| -rw-r--r-- | packages/trpc/package.json | 1 | ||||
| -rw-r--r-- | packages/trpc/routers/admin.ts | 6 | ||||
| -rw-r--r-- | packages/trpc/routers/bookmarks.ts | 15 |
3 files changed, 11 insertions, 11 deletions
diff --git a/packages/trpc/package.json b/packages/trpc/package.json index 8054e7c5..1da46e9a 100644 --- a/packages/trpc/package.json +++ b/packages/trpc/package.json @@ -14,6 +14,7 @@ }, "dependencies": { "@karakeep/db": "workspace:*", + "@karakeep/plugins-search-meilisearch": "workspace:*", "@karakeep/shared": "workspace:*", "@trpc/server": "^11.4.3", "bcryptjs": "^2.4.3", diff --git a/packages/trpc/routers/admin.ts b/packages/trpc/routers/admin.ts index 9fd77f1d..1b069b9e 100644 --- a/packages/trpc/routers/admin.ts +++ b/packages/trpc/routers/admin.ts @@ -14,7 +14,7 @@ import { VideoWorkerQueue, WebhookQueue, } from "@karakeep/shared/queues"; -import { getSearchIdxClient } from "@karakeep/shared/search"; +import { getSearchClient } from "@karakeep/shared/search"; import { resetPasswordSchema, updateUserSchema, @@ -219,8 +219,8 @@ export const adminAppRouter = router({ ); }), reindexAllBookmarks: adminProcedure.mutation(async ({ ctx }) => { - const searchIdx = await getSearchIdxClient(); - await searchIdx?.deleteAllDocuments(); + const searchIdx = await getSearchClient(); + await searchIdx?.clearIndex(); const bookmarkIds = await ctx.db.query.bookmarks.findMany({ columns: { id: true, diff --git a/packages/trpc/routers/bookmarks.ts b/packages/trpc/routers/bookmarks.ts index 9aa9ec1e..298f0961 100644 --- a/packages/trpc/routers/bookmarks.ts +++ b/packages/trpc/routers/bookmarks.ts @@ -38,7 +38,7 @@ import { triggerSearchReindex, triggerWebhook, } from "@karakeep/shared/queues"; -import { getSearchIdxClient } from "@karakeep/shared/search"; +import { getSearchClient } from "@karakeep/shared/search"; import { parseSearchQuery } from "@karakeep/shared/searchQueryParser"; import { BookmarkTypes, @@ -761,7 +761,7 @@ export const bookmarksAppRouter = router({ input.limit = DEFAULT_NUM_BOOKMARKS_PER_PAGE; } const sortOrder = input.sortOrder || "relevance"; - const client = await getSearchIdxClient(); + const client = await getSearchClient(); if (!client) { throw new TRPCError({ code: "INTERNAL_SERVER_ERROR", @@ -788,10 +788,9 @@ export const bookmarksAppRouter = router({ */ const createdAtSortOrder = sortOrder === "relevance" ? "desc" : sortOrder; - const resp = await client.search(parsedQuery.text, { + const resp = await client.search({ + query: parsedQuery.text, filter, - showRankingScore: true, - attributesToRetrieve: ["id"], sort: [`createdAt:${createdAtSortOrder}`], limit: input.limit, ...(input.cursor @@ -805,7 +804,7 @@ export const bookmarksAppRouter = router({ return { bookmarks: [], nextCursor: null }; } const idToRank = resp.hits.reduce<Record<string, number>>((acc, r) => { - acc[r.id] = r._rankingScore!; + acc[r.id] = r.score || 0; return acc; }, {}); const results = await ctx.db.query.bookmarks.findMany({ @@ -846,11 +845,11 @@ export const bookmarksAppRouter = router({ results.map((b) => toZodSchema(b, input.includeContent)), ), nextCursor: - resp.hits.length + resp.offset >= resp.estimatedTotalHits + resp.hits.length + (input.cursor?.offset || 0) >= resp.totalHits ? null : { ver: 1 as const, - offset: resp.hits.length + resp.offset, + offset: resp.hits.length + (input.cursor?.offset || 0), }, }; }), |
