Re: Comparacion strings

From: Emanuel Calvo <emanuel(dot)calvo(at)2ndquadrant(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Comparacion strings
Date: 2014-10-31 18:51:13
Message-ID: 5453DA21.9060002@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


El 31/10/14 a las 12:54, Gustavo Rosso escibió:
>
> Buenos dias lista.
>
> Necesito escribir una función que pueda comparar dos string y sacar
> como conclusión que porcentaje de parecido tienen.
>

Se puede usar pg_trgm a través de índices GIN, te puede dar "la
distancia" entre cada.

La función es:

postgres=# select similarity_dist('emanuel', 'manuel');
similarity_dist
-----------------
0.5
(1 row)

postgres=# select similarity_dist('emanuel', 'emanuel');
similarity_dist
-----------------
0
(1 row)

0 = en el mismo lugar
1 = muy lejos

Para usar en un índice:
create index trgm_idx on test_trgm using gist (t gist_trgm_ops);

Hay una serie de ejemplos dentro del contrib (pg_trgm.sql).

El contrib de fuzzystrmatch te puede dar algunas funciones para buscar
la similaridad de palabras
(usando algoritmos de fonética):
http://www.postgresql.org/docs/current/static/fuzzystrmatch.html

> Por ej. Dos campos con apellido y nombre en uno y tal vez nombre y
> apellido en otro, siendo la misma persona.
>

Sería algo así (recuerda que es en inglés):

postgres=# select soundex('emanuel'), soundex('manuel'),
difference('emanuel','manuel');
soundex | soundex | difference
---------+---------+------------
E554 | M540 | 1
(1 row)

0 = nada parecido
4 = lo mismo

--
--
Emanuel Calvo http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ivan Perales M. 2014-10-31 19:10:52 Re: Campos bytea a Base64 via Webservice
Previous Message Edwin Quijada 2014-10-31 18:49:30 Campos bytea a Base64 via Webservice