0
我想創建PostgreSQL查詢來查找tsvector列中的部分文本。postgresql tsvector部分文本匹配
我有一個像這樣的tsvector值"'89' 'TT7' 'test123'"
,我需要找到任何包含「%es%」的行。
我該怎麼做?
我試圖
select * from use_docs_conteudo
WHERE textodados @@ to_tsquery('es')
我想創建PostgreSQL查詢來查找tsvector列中的部分文本。postgresql tsvector部分文本匹配
我有一個像這樣的tsvector值"'89' 'TT7' 'test123'"
,我需要找到任何包含「%es%」的行。
我該怎麼做?
我試圖
select * from use_docs_conteudo
WHERE textodados @@ to_tsquery('es')
看起來你要使用快速ILIKE
查詢野生比賽。 pg_trgm
將是合適的工具。您可以使用POSIX regex rules來定義您的查詢。
WITH data(t) AS (VALUES
('test123! TT7 89'::TEXT),
('test123, TT7 89'::TEXT),
('[email protected] TT7 89'::TEXT)
)
SELECT count(*) FROM data WHERE t ~* 'es' AND t ~* '\mtest123\M';
結果:
count
-------
3
(1 row)
鏈接現有的答案: