diff --git a/apps/portal/prisma/migrations/20221014105030_add_question_content_search/migration.sql b/apps/portal/prisma/migrations/20221014105030_add_question_content_search/migration.sql index 992d2a77..2aed7085 100644 --- a/apps/portal/prisma/migrations/20221014105030_add_question_content_search/migration.sql +++ b/apps/portal/prisma/migrations/20221014105030_add_question_content_search/migration.sql @@ -1,5 +1,5 @@ -- AlterTable -ALTER TABLE "QuestionsQuestion" ADD COLUMN "contentSearch" TSVECTOR +ALTER TABLE "QuestionsQuestion" ADD COLUMN "contentSearch" TSVECTOR GENERATED ALWAYS AS to_tsvector('english', coalesce(content, '')) STORED; diff --git a/apps/portal/src/server/router/questions-question-router.ts b/apps/portal/src/server/router/questions-question-router.ts index 51e31b51..5c92036a 100644 --- a/apps/portal/src/server/router/questions-question-router.ts +++ b/apps/portal/src/server/router/questions-question-router.ts @@ -224,14 +224,17 @@ export const questionsQuestionRouter = createProtectedRouter() .split(/\s+/) .join(" | "); - const res = await ctx.prisma.$queryRaw` - SELECT content FROM "Post" + const relatedQuestions = await ctx.prisma.$queryRaw` + SELECT content FROM "QuestionsQuestion" WHERE "contentSearch" @@ to_tsquery('english', ${query}) ORDER BY ts_rank("textSearch", to_tsquery('english', ${query})) DESC LIMIT 10; `; + + return relatedQuestions; } + }) .mutation('create', { input: z.object({ @@ -454,7 +457,7 @@ export const questionsQuestionRouter = createProtectedRouter() const incrementValue = voteToDelete.vote === Vote.UPVOTE ? -1 : 1; - const [questionVote] = await ctx.prisma.$transaction([ + const [ questionVote ] = await ctx.prisma.$transaction([ ctx.prisma.questionsQuestionVote.delete({ where: { id: input.id,