Re: [Fwd: Re: [pgsql-es-ayuda] búsqueda con tolerancia]

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Xavier Puig <desarrollo(at)quickimage(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [Fwd: Re: [pgsql-es-ayuda] búsqueda con tolerancia]
Date: 2006-06-20 19:03:21
Message-ID: 20060620190321.GC26882@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Xavier Puig escribió:
> Gracias Cuenca por orientarme,
>
> select * from tabla order by @(propiedades-$1) limit 20
>
> Esto sólo funciona para campos numéricos, cómo podria hacer lo mismo para
> varchar, he probado
>
> select * from tabla order by @(propiedades-'arbol') limit 20 (suponiendo
> que propiedades es varchar, claro)

Define una funcion distancia() que tome dos campos tipo text y retorne
un numero que indique que tan parecidos o diferentes son los strings.
Luego defines el operador -(text,text) usando esa funcion. Teniendo eso
creo que lo de arriba funcionaria.

Sin embargo creo que lo que tratas de hacer seria mas inteligente
atacarlo con algo como pg_trgm (o pg_tgrm), que hace busqueda por
trigramas. Ideal para busquedas por similitud en strings.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2006-06-20 19:16:10 Re: Ordenar una Tabla y reindexar se pierden los triggers
Previous Message Nicolas Recabarren 2006-06-20 19:03:17 Cambiar propietario de una tabla