David Leangen <postgres@xxxxxxxxxxx> writes: > And this is the actual query: > SELECT COUNT(t0.ID) FROM public.MY_TABLE t0 > WHERE ((POSITION('adenosine cyclic 35-monophosphate' IN LOWER(t0.TITLE)) > - 1) >=0 OR > (POSITION('adenosine cyclic 55-monophosphate' IN LOWER(t0.TEXT)) - 1) >= > 0 OR > (POSITION('cyclic amp, disodium salt' IN LOWER(t0.TITLE)) - 1) >= 0 OR > (POSITION('cyclic amp, disodium salt' IN LOWER(t0.TEXT)) - 1) >= 0 OR > (POSITION('cyclic amp, sodium salt' IN LOWER(t0.TEXT)) - 1) >= 0 OR > ...etc... I think you need to look into full-text indexing (see tsearch2). regards, tom lane