Si ejecuto un ts_debug del campo completo que estoy buscando para uno de los ejemplos que tiene la palabra "bilingue" pero que FTS no incluye en sus resultados me encuentra entre otras cosas:

(asciiword,Word, all ASCII",Biling,{spanish_stem},spanish_stem,{biling})"
(asciiword,Word, all ASCII",Bilingue,{spanish_stem},spanish_stem,{biling})"
(asciiword,Word, all ASCII",bilingue,{spanish_stem},spanish_stem,{biling})"

Todo indica que el stem está y FTS lo detecta pero sin embargo el query

SELECT * FROM atributos_contactos WHERE valor_cadena_index @@ to_tsquery('bilingue');

descarta muchos registros.

Con respecto a la palabra "bilingue", es verdad que es un ejemplo rebuscado, pero estoy buscando en el texto de curriculums personas con esa capacidad.

Alguna otra idea?

Saludos y gracias



El 25/07/2011 03:46 p.m., Alvaro Herrera escribió:
Excerpts from Jaime Casanova's message of lun jul 25 14:29:00 -0400 2011:

Yo partiría por verificar los resultados: primero cuál es el stem (??)
que se está buscando con FTS (prueba ts_debug), segundo ver cuál es el
stem de los términos que se encuentran con LIKE.  Ten presente que si la
palabra es babilingue (o cualquier tontera con un prefijo antes de la
palabra), la expresión LIKE lo encontrará pero el FTS no.
yo tuve este mismo problema hace un año cuando quize entender FTS, y
lo postergue hasta tener tiempo... aun esta en mi TODO...
no sabia de ts_debug, voy a ver que me dice... pero me llamo la
atencion lo de las palabras "babilingues" (que aun no se que son) y lo
de palabras con prefijo... porque FTS no puede encontrarlas pero LIKE
si?
No existe babilingues, sólo le puse "ba" al principio (prefijo) de la
palabra para ilustrar mi punto.  Creo que habría sido más fácil si
Rodolfo no hubiera usado un ejemplo tan rebuscado.

Pensando en LIKE, la expresión "xxunoxx" LIKE '%uno%' es obviamente
verdadera.  Pero FTS no lo encontrará si buscar por to_tsquery('uno')
porque sólo buscará palabras que _empiecen_ con "uno" (o más exactamente,
con el stem de "uno" que supongo que será "un").