Сопоставьте фразу, заканчивающуюся префиксом, с полнотекстовым поиском

Я ищу способ эмулировать что-то вроде SELECT * FROM table WHERE attr LIKE '% text%' с использованием tsvector в PostgreSQL.

I ' Мы создали атрибут tsvector, не используя словарь. Теперь запрос типа ...

SELECT title
FROM table
WHERE title_tsv @@ plainto_tsquery('ph:*');  

... вернет все заголовки, такие как 'Physics', '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:*');
9
задан Erwin Brandstetter 13 December 2016 в 02:25
поделиться