2016-11-30 2 views
1

私は、クエリを持ってPostgresqlの:として、配列に含まれるマッチ完全なワードが

{'%Tomato%','%Potato%','%Pines%'} 

しかし、今、私はilikeするのではなく、完全な単語と一致する必要があります%標識が記載されている場合、説明が 'げっ歯類はげっ歯類の哺乳動物'である場合には失敗するため、query_arr word 'パイン 'が正しく一致しています。

だから、完全な単語自体を照会されているテーブルの列に一致させる必要があります。

+0

あなたは[FTS]を必要とするようにそれは、HTTPS(に見えるのか?: //www.postgresql.org/docs/9.5/static/textsearch.html)。 –

+0

@SergeyGornostaevは同じものの例を提供することができます –

+0

'select 'のような検索語の周りに空白を追加することができますPorcupinesはげっ歯類の哺乳類です' select 'の代わりに〜' pines'; 'Porcupinesはげっ歯類の哺乳類です '〜*' pines ' ; ' –

答えて

0

は、おそらくあなたはあなたのクエリは、この

select id from events where description is not null and (name ~*ANY('{query_arr}'::text[]) or description ~*ANY('{query_arr}'::text[]) or additional_info ~*ANY('{query_arr}'::text[]) or venue_name ~*ANY('{query_arr}'::text[]) or other_category ~*ANY('{query_arr}'::text[]) or eventful_category ~*ANY('{query_arr}'::text[]) 
1

FTSようにする必要がありPostgreSQLの

~*ANY('{query_arr}'::text[]) 

でこの構文を使用することができます - 大規模かつ複雑なテーマです。私の例をそのまま使用しないでください。この場合

select id from events where to_tsquery('Tomato Potato Pines') @@ to_tsvector(events::text); 
0

{'% Tomato %','% Potato %','% Pines %'}

{'%Tomato%','%Potato%','%Pines%'}

を変更するだけでは十分でなければなりません。..

関連する問題