我尝试创建PostgreSQL查询以在tsvector列中查找部分文本。
我有一个像这个"'89' 'TT7' 'test123'"
的tsvector值,我需要找到包含"%es%"的任何行。
我该怎么做?
我试过
select * from use_docs_conteudo
WHERE textodados @@ to_tsquery('es')
答案 0 :(得分:1)
您似乎希望使用快速ILIKE
查询进行野外匹配。 pg_trgm
将成为合适的工具。您可以使用POSIX regex rules来定义查询。
WITH data(t) AS ( VALUES
('test123! TT7 89'::TEXT),
('test123, TT7 89'::TEXT),
('test@test123.domain TT7 89'::TEXT)
)
SELECT count(*) FROM data WHERE t ~* 'es' AND t ~* '\mtest123\M';
结果:
count
-------
3
(1 row)
现有答案的链接: