From 602504ca9da134562d9efed11d587842c94e3e06 Mon Sep 17 00:00:00 2001 From: Sergio Gutierrez Villalba Date: Fri, 27 Sep 2024 12:46:18 +0200 Subject: [PATCH] fix(search): replace spaces by the '&' operator when searching --- src/modules/fuzzy-search/look-up.repository.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/modules/fuzzy-search/look-up.repository.ts b/src/modules/fuzzy-search/look-up.repository.ts index 23a5836a..3b131dce 100644 --- a/src/modules/fuzzy-search/look-up.repository.ts +++ b/src/modules/fuzzy-search/look-up.repository.ts @@ -40,12 +40,14 @@ export class SequelizeLookUpRepository implements LookUpRepository { partialName: string, offset = 0, ): Promise { + const partialNameFormatted = partialName.replace(/\s+/g, ' & '); + const result = await this.model.findAll({ attributes: { include: [ [ Sequelize.literal( - 'nullif(ts_rank("tokenized_name", to_tsquery(:partialName)), 1)', + 'nullif(ts_rank("tokenized_name", to_tsquery(:partialNameFormatted)), 1)', ), 'rank', ], @@ -68,7 +70,9 @@ export class SequelizeLookUpRepository implements LookUpRepository { where: { user_id: userUuid, [Op.or]: [ - Sequelize.literal(`to_tsquery(:partialName) @@ "tokenized_name"`), + Sequelize.literal( + `to_tsquery(:partialNameFormatted) @@ "tokenized_name"`, + ), Sequelize.where( Sequelize.fn( 'similarity', @@ -86,7 +90,7 @@ export class SequelizeLookUpRepository implements LookUpRepository { ], limit: 5, offset: offset, - replacements: { partialName, userUuid }, + replacements: { partialName, partialNameFormatted, userUuid }, include: [ { model: FileModel,