Buenas tardes , he leído sobre el tema Postgres y FTS en varios sitios y lo he utilizado varias veces pero al decir verdad, sigo entendiendolo muy poco. Si alguno tiene tiempo y puede ayudarme, les comento mi inquietud.
Tengo la siguiente consulta: SELECT * FROM tescrito t WHERE to_tsvector('spanish',escritodtxt) @@ to_tsquery('spanish','*salta* ') y tengo un índice creado CREATE INDEX fts_escritodtxt ON public.tescrito USING gin (to_tsvector('spanish'::regconfig, escritodtxt)); La tabla tiene 65300 registros El planificado me dice que realizará un seq scan y de hecho, la consulta demora mucho. Si cambio la palabra a buscar, por ejemplo por 'casa' SELECT * FROM tescrito t WHERE to_tsvector('spanish',escritodtxt) @@ to_tsquery('spanish','*casa*') Entonces demora menos y el planificador ahora dice que si utilizará el índice. Preguntas: En que se basa postgres para decidir si utiliza o no el índice si lo único que cambié es la palabra a buscar? Será que el tsquery de 'salta' es una palabra que no se indexa? Para el caso de 'spanish' Aparte de crear el índice es necesario crear o configurar algo mas? Desde ya les agradezco la ayuda que me puedan brindar. Saludos Guillermo