Я ищу способ эмулировать что-то вроде SELECT * FROM table WHERE attr LIKE '%text%'
, используя tsvector в PostgreSQL.
Я создал атрибут tsvector без использования словаря.Теперь запрос типа ...
SELECT title
FROM table
WHERE title_tsv @@ plainto_tsquery('ph:*');
... вернул бы все заголовки, такие как «Физика», «PHP» и т. Д. Но как я могу создать запрос, который возвращает все записи, с которых начинается заголовок?с «Zend Fram» (который должен возвращать, например, «Zend Framework»)?
Конечно, я мог бы использовать что-то вроде:
SELECT title
FROM table
WHERE title_tsv @@ to_tsquery('zend')
AND title_tsv @@ to_tsquery('fram:*');
Однако это кажется немного неловким
Итак, вопрос в следующем: есть ли способ сформулировать приведенный выше запрос, используя что-то вроде:
SELECT title
FROM table
WHERE title_tsv @@ to_tsquery('zend fram:*');