提问人:Mosd 提问时间:9/11/2023 更新时间:9/12/2023 访问量:26
使用 posgresql to_tsquery列的前缀匹配,可能具有多个值
Using posgresql to_tsquery prefix match on column with possible multiple values
问:
如果只查询一个单词,这很好用:
select to_tsvector('english', 'matchsticks only applicable things'), to_tsquery('english', 'match:*'),
to_tsvector('english', 'matchsticks only applicable things') @@ to_tsquery('english', 'match:*')
现在我怎样才能让它与像db_column这样的列一起工作,这些列可以有带空格的字符串:
select to_tsvector('english', 'matchsticks only applicable things'), to_tsquery('english', db_column),
to_tsvector('english', 'matchsticks only applicable things') @@ to_tsquery('english', db_column)
示例 if 和 i want to pass ?尝试plainto_tsquery,但缺少允许前缀匹配的“:*”db_column = "match test square"
"match:*&test:*&square:*"
答:
1赞
JGH
9/12/2023
#1
您可以操作 tsquery 字符串:
select (replace(
plainto_tsquery('english', 'match test square')::text,
' &',
':*&') || ':*'
)::tsquery;
tsquery
----------------------------------
'match':* & 'test':* & 'squar':*
(1 row)
评论