Gracias! Lo que pasa es que hice unas pruebitas y en el caso de índices comunes, si despues en la búsqueda le ponés un coalese, si lo utiliza, pero bueno entiendo cual es el comportamiento en el caso de FTS e índices GIN particularmente.
Gracias de nuevo El 3 de mayo de 2016, 11:35, Hellmuth Vargas <hiv...@gmail.com> escribió: > Hola Guillermo > > En efecto ese es el comportamiento esperado, el indice solo se puede > aplicar sobre la expresión de columna exacta que se definió. Al colocar una > función adicional (en el caso coalesce) esta modificando el valor de la > columna y sobre este nuevo valor no se genero el indice, sucede lo mismo > si definimos un indice sobre un valor texto, por ejemplo: > > CREATE INDEX idx_tabla_nombre > ON tabla(nombre); > > y luego pretendemos que lo use en una sentencias así: > > SELECT * FROM tabla WHERE UPPER(nombre) ='CARLOS' > > Si es frecuente la consulta con UPPER debería definir el indice con la > función UPPER (PostgreSQL soporta esto): > > CREATE INDEX idx_tabla_upper_nombre > ON tabla(*UPPER(*nombre*)*); > > > > El 3 de mayo de 2016, 07: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 >> > > > > -- > Cordialmente, > > Ing. Hellmuth I. Vargas S. > Esp. Telemática y Negocios por Internet > Oracle Database 10g Administrator Certified Associate > EnterpriseDB Certified PostgreSQL 9.3 Associate > >