From: | Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Usasando Tsearch en 8.3 |
Date: | 2009-01-28 21:37:48 |
Message-ID: | 361462.36180.qm@web52106.mail.re2.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
________________________________
De: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Para: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
CC: pgsql-es-ayuda(at)postgresql(dot)org
Enviado: martes 27 de enero de 2009, 12:35:40
Asunto: Re: [pgsql-es-ayuda] Usasando Tsearch en 8.3
Gabriel Ferro escribió:
> 1º problema: ahora lo quiero hacer con un trigger y encontre que se hace con
>
> CREATE TRIGGER triggerpersonas BEFORE INSERT OR UPDATE
> ON personas FOR EACH ROW EXECUTE PROCEDURE tsvector_update_trigger('vectornombre', 'pg_catalog.spanish', 'nombre');
>
> pero no encuentro como hacerlo para cuando tengo dos campos tsvector.
¿Dos triggers?
> 2º problema cuando hago
>
> SELECT nombre,vectornombre,ts_headline(nombre,q),
> ts_rank_cd(vectornombre,q)
> FROM personas,
> to_tsquery('FERRO&GABRIEL') AS q
> WHERE vectornombre @@ q ORDER BY ts_rank_cd(vectornombre,q) DESC;
>
> entre los primeros me
>
> "FERRER GABRIEL ALEJANDRO";"'ferr':1 'gabriel':2 'alejandr':3";"<b>FERRER</b> <b>GABRIEL</b> ALEJANDRO";0.1
> "FERRER GABRIELA SUSANA";"'ferr':1 'susan':3 'gabriel':2";"<b>FERRER</b> <b>GABRIELA</b> SUSANA";0.1
> "FERRADA GABRIELA ALEJANDR";"'ferr':1 'gabriel':2 'alejandr':3";"<b>FERRADA</b> <b>GABRIELA</b> ALEJANDR";0.1
> "FERRANDO GABRIELA MARISA";"'ferr':1 'maris':3 'gabriel':2";"<b>FERRANDO</b> <b>GABRIELA</b> MARISA";0.1
> "RIVERA FERRADA GABRIEL H";"'h':4 'ferr':2 'river':1 'gabriel':3";"RIVERA <b>FERRADA</b> <b>GABRIEL</b> H";0.1
> "FERRO GABRIELA";"'ferr':1 'gabriel':2";"<b>FERRO</b> <b>GABRIELA</b>";0.1
> "FERRE GABRIELA ANGELICA";"'ferr':1 'angel':3 'gabriel':2";"<b>FERRE</b> <b>GABRIELA</b> ANGELICA";0.1
> "FERRO GABRIELA ANDREA";"'ferr':1 'andre':3 'gabriel':2";"<b>FERRO</b> <b>GABRIELA</b> ANDREA";0.1
> "FERRO GABRIELA MARIA ESTH";"'esth':4 'ferr':1 'mari':3 'gabriel':2";"<b>FERRO</b> <b>GABRIELA</b> MARIA ESTH";0.1
> "FERRO GABRIEL RAMIRO";"'ferr':1 'ramir':3 'gabriel':2";"<b>FERRO</b> <b>GABRIEL</b> RAMIRO";0.1
> y otros tantos mas
Todos tienen el mismo rank 0.1 ... ¿quizás tu problema es la forma como
está definida la función ts_rank_cd? Si te fijas todos tienen "gabriel"
y "ferr" en el tsvector.
Creo haber resuelto el problema haciendo de la forma
SELECT clave,nombre,vectornombre
FROM personas,
to_tsquery('FERRO&GABRIEL') AS q
WHERE vectornombre @@ q and
('FERRO&GABRIEL':: tsquery @@ nombre::tsvector)
ORDER BY ts_rank_cd(vectornombre,q) DESC;
pufff.... quede mas loco de lo que estaba... espero que este todo bien... si es asi mil gracias a todos, sino..... ayuda plis...
Saludos
Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/
From | Date | Subject | |
---|---|---|---|
Next Message | Conrado Blasetti | 2009-01-29 12:24:22 | COPY FROM con Comillas dobles |
Previous Message | marta vicente romero | 2009-01-28 21:00:43 | Re: Pasar una base de datos de linux a windows xp (postgres + postgis) |