2016-07-06 18 views
0

私はPostgreSQLのクエリを作成して、tsvectorカラムの中に部分的なテキストを見つけようとしています。postgresql tsvector部分的なテキストの一致

私はこの"'89' 'TT7' 'test123'"のようなtsvectorの値を持っており、 "%es%"を含む行を見つける必要があります。

どうすればいいですか?

私はあなたの野生の試合のために高速ILIKEクエリを使用するように見えます

select * from use_docs_conteudo 
WHERE textodados @@ to_tsquery('es') 

答えて

0

を試してみました。 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) 

リンク: