Меня очень смущает использование to_tsquery и параметра regconfig.
Используется PostgreSQL 9.0.2 в Windows.
SELECT name_with_city
FROM company
WHERE name_with_city @@ to_tsquery('simple', 'aires|aires:*')
0 rows retrieved.
.. что является правильным результатом, но:
SELECT name_with_city
FROM company
WHERE name_with_city @@ to_tsquery('english', 'aires|aires:*')
"Bel-Air Express Paris"
"Med-Air Miami"
"APS Air Parts Tel Aviv"
"Air Malta Luga"
"Air Nauru Melbourne"
...
542 rows retrieved.
, кажется, ищет "air" вместо "aires" .. как я понял, это из-за словаря 'english' ..
Но использование 'simple' не делает 't тоже всегда работает.
SELECT name_with_city
FROM company
WHERE name_with_city @@ to_tsquery('simple', 'harms|harms:*')
0 rows retrieved.
, что неверно, но
SELECT name_with_city
FROM company
WHERE name_with_city ILIKE 'harms%'
"Harms & Wende Hamburg"
1 rows retrieved.
.. правильно.
Какой запрос мне нужно использовать вместо этого?Как я понял, я могу использовать to_tsquery для поиска частичных слов в текстовом столбце, например: поиск «tech *» выдаст «Lufthansa Technik» и «Technical Aero», но не «Airtech».