Я пытаюсь запустить полнотекстовый запрос, используя Postgresql, который может обслуживать частичные совпадения с помощью подстановочных знаков.
Кажется, достаточно легко иметь подстановочный шаблон postfix после поискового запроса, однако я не могу понять, как указать шаблон подстановки.
Например, я могу выполнить постфиксный поиск достаточно легко, используя что-то вроде.
SELECT "t1".*
FROM "t1"
WHERE (to_tsvector('simple', "t1"."city") @@ to_tsquery('simple', 'don:*') )
должен возвращать результаты, соответствующие "Лондон"
Однако я не могу сделать префиксный поиск, например...
SELECT "t1".*
FROM "t1"
WHERE (to_tsvector('simple', "t1"."city") @@ to_tsquery('simple', ':*don') )
В идеале я хотел бы иметь подстановочный знак, предваряющий фронт и конец поискового термина, что-то вроде...
SELECT "t1".*
FROM "t1"
WHERE (to_tsvector('simple', "t1"."city") @@ to_tsquery('simple', ':*don:*') )
Я могу использовать условие LIKE, однако я надеялся извлечь выгоду из производительности функций полнотекстового поиска в Postgres.