From a415b86193d411e6d81534269c952f51ae860694 Mon Sep 17 00:00:00 2001 From: Philipinho <16838612+Philipinho@users.noreply.github.com> Date: Tue, 25 Aug 2026 03:28:59 +0100 Subject: [PATCH] fix: clean up unaccent usage in index --- apps/server/src/core/search/search.service.ts | 6 +++--- .../migrations/20260824T211732-page-title-trgm-index.ts | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/server/src/core/search/search.service.ts b/apps/server/src/core/search/search.service.ts index 3db29b274..32cedd7ee 100644 --- a/apps/server/src/core/search/search.service.ts +++ b/apps/server/src/core/search/search.service.ts @@ -48,7 +48,7 @@ export class SearchService { const rankColumn = browseByFilters ? sql`0`.as('rank') : titleOnly - ? sql`word_similarity(lower(f_unaccent(${titleQuery})), lower(f_unaccent(pages.title)))`.as( + ? sql`word_similarity(lower(${titleQuery}), lower(pages.title))`.as( 'rank', ) : sql`ts_rank(tsv, to_tsquery('english', f_unaccent(${searchQuery})))`.as( @@ -84,9 +84,9 @@ export class SearchService { .$if(!browseByFilters && titleOnly, (qb) => qb.where((eb) => eb( - sql`lower(f_unaccent(pages.title))`, + sql`lower(pages.title)`, 'like', - sql`lower(f_unaccent(${`%${titleLikeQuery}%`}))`, + sql`lower(${`%${titleLikeQuery}%`})`, ), ), ) diff --git a/apps/server/src/database/migrations/20260824T211732-page-title-trgm-index.ts b/apps/server/src/database/migrations/20260824T211732-page-title-trgm-index.ts index 3cadad07b..28e3207ea 100644 --- a/apps/server/src/database/migrations/20260824T211732-page-title-trgm-index.ts +++ b/apps/server/src/database/migrations/20260824T211732-page-title-trgm-index.ts @@ -1,12 +1,12 @@ import { type Kysely, sql } from 'kysely'; export async function up(db: Kysely): Promise { - await sql`CREATE INDEX IF NOT EXISTS pages_title_trgm_idx ON pages USING gin (lower(f_unaccent(title)) gin_trgm_ops)`.execute( + await sql`CREATE INDEX IF NOT EXISTS pages_title_trgm_idx ON pages USING gin (lower(title) gin_trgm_ops)`.execute( db, ); // separators normalized to spaces so space-typed queries match How_to_export.pdf - await sql`CREATE INDEX IF NOT EXISTS attachments_file_name_trgm_idx ON attachments USING gin (lower(f_unaccent(translate(file_name, '_.-', ' '))) gin_trgm_ops)`.execute( + await sql`CREATE INDEX IF NOT EXISTS attachments_file_name_trgm_idx ON attachments USING gin (lower(translate(file_name, '_.-', ' ')) gin_trgm_ops)`.execute( db, ); }