From 5bc9158724308bbd4bcf0f448c2ae845c0a05653 Mon Sep 17 00:00:00 2001 From: Mert <101130780+mertalev@users.noreply.github.com> Date: Sun, 31 Mar 2024 10:59:11 -0400 Subject: [PATCH] fix(server): penalize null geodata fields when searching places (#8408) --- server/src/queries/search.repository.sql | 8 ++++---- server/src/repositories/search.repository.ts | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/server/src/queries/search.repository.sql b/server/src/queries/search.repository.sql index c7b6600681..e985a1a6d7 100644 --- a/server/src/queries/search.repository.sql +++ b/server/src/queries/search.repository.sql @@ -254,15 +254,15 @@ WHERE OR f_unaccent ("admin1Name") %>> f_unaccent ($1) OR f_unaccent ("alternateNames") %>> f_unaccent ($1) ORDER BY - COALESCE(f_unaccent (name) <->>> f_unaccent ($1), 0) + COALESCE( + COALESCE(f_unaccent (name) <->>> f_unaccent ($1), 0.1) + COALESCE( f_unaccent ("admin2Name") <->>> f_unaccent ($1), - 0 + 0.1 ) + COALESCE( f_unaccent ("admin1Name") <->>> f_unaccent ($1), - 0 + 0.1 ) + COALESCE( f_unaccent ("alternateNames") <->>> f_unaccent ($1), - 0 + 0.1 ) ASC LIMIT 20 diff --git a/server/src/repositories/search.repository.ts b/server/src/repositories/search.repository.ts index 2de48b7415..4530d2295f 100644 --- a/server/src/repositories/search.repository.ts +++ b/server/src/repositories/search.repository.ts @@ -214,10 +214,10 @@ export class SearchRepository implements ISearchRepository { .orWhere(`f_unaccent("alternateNames") %>> f_unaccent(:placeName)`) .orderBy( ` - COALESCE(f_unaccent(name) <->>> f_unaccent(:placeName), 0) + - COALESCE(f_unaccent("admin2Name") <->>> f_unaccent(:placeName), 0) + - COALESCE(f_unaccent("admin1Name") <->>> f_unaccent(:placeName), 0) + - COALESCE(f_unaccent("alternateNames") <->>> f_unaccent(:placeName), 0) + COALESCE(f_unaccent(name) <->>> f_unaccent(:placeName), 0.1) + + COALESCE(f_unaccent("admin2Name") <->>> f_unaccent(:placeName), 0.1) + + COALESCE(f_unaccent("admin1Name") <->>> f_unaccent(:placeName), 0.1) + + COALESCE(f_unaccent("alternateNames") <->>> f_unaccent(:placeName), 0.1) `, ) .setParameters({ placeName })