Guillermo, De lo que entiendo, o que deberías generar es una columna tipo tsvector en tu tabla a partir de la columna donde tiene es texto. y esa columna tipo tsvector indexarla, y ahí no sería necesario utilizar el coalesce. En general he visto que cuando haces algún calculo o un cast sobre una columna en el where como el tuyo la búsqueda se va a secuencial y no utiliza los indices.
Saludos El 3 de mayo de 2016, 09:56, Guillermo E. Villanueva<guillermo...@gmail.com> escribió: > Buenos días cómo están? > Les comento una experiencia con full text search. > En una tabla que tengo unos 120mil registros creé un índice para hacer FTS > de la siguiente forma: > CREATE INDEX fts_escritodtxt > ON tescrito > USING gin > (to_tsvector('spanish'::regconfig, escritodtxt)); > > cuando hago un explain de la sentencia: > SELECT > t.escritoid, > t.escritofecfirma, > t.escritotipojuz > FROM > tescrito t > WHERE > to_tsvector('spanish',coalesce(escritodtxt,'')) @@ > to_tsquery('spanish','hogar & vereda'); > > Me dice que *no utilizará el índice* creado y con una búsqueda secuencial > demora aproximadamente 4 minutos. > Pero si elimino el coalesce, entonces si usa el índice y el resultado se > obtiene en menos de un segundo!!! > *¿Es este el comportamiento esperado?* No pasa lo mismo con los índices > no fts. > Desde ya muchas gracias por sus comentarios > > Saludos > > Guillermo > -- -- Eduardo Arenas Jefe de Unidad de Gestión de Información Ancora UC - Chile +56 9 6629 1618 +56 22 944 9098