У меня есть запрос, который принимает входные данные для поиска совпадения в zipcode / region / city / metrocode в таблице местоположений, содержащей несколько десятков тысяч записей (должно быть почти в каждом городе США).Я использую запрос:
select
metrocode,
region,
postalcode,
region_full,
city
from
dv_location
where
(
region ilike '%Chicago%'
or
postalcode ilike '%Chicago%'
or
city ilike '%Chicago%'
or
region_full ilike'%Chicago%'
)
and metrocode is not null
Странно, набор результатов, который я получаю, выглядит примерно так:
metrocode;region;postalcode;region_full;city
862;CA;95712;California;Chicago Park
862;CA;95712;California;Chicago Park
602;IL;60611;Illinois;Chicago
602;IL;60610;Illinois;Chicago
Что я делаю не так?Я думаю, что Чикаго будет иметь больший вес, чем Чикагский парк, так как Чикаго является точным соответствием с термином (даже при том, что я запрашиваю совпадение с подстановочным знаком в этом термине).