Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos

From: Miguel Panuera <mpanuera(at)gmail(dot)com>
To: josemanuelruizbaena(at)gmail(dot)com, PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Cc: Román Mussi <romanmussi(at)nitrico(dot)com(dot)ar>
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-22 13:30:36
Message-ID: AANLkTikTzXpUUK6yHrsmjBtvB8qigOacpcF8EjKHAi6A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas, al realizar estas funciones,
tambien se deberia crear un indice con la funcion para optimizar la
busqueda????????

El 22 de septiembre de 2010 01:37, José Manuel Ruiz <
josemanuelruizbaena(at)gmail(dot)com> escribió:

> Muchas gracias, añadiré tu blog para seguir aprendiendo.
>
> La función:
>
> *CREATE OR REPLACE FUNCTION sp_ascii(character varying)**
> **RETURNS text AS**
> **$BODY$**
> **SELECT TRANSLATE
> ($1,
> 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',**
> **'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC');**
> **$BODY$**
> **LANGUAGE 'sql';*
>
> Hace justo lo que pretendía.
>
> SELECT * FROM nombres WHERE sp_ascii(apellido1) ILIKE sp_ascii('martin');
>
> Ahora me devuelve, los Martin, martin, Mártin, Martín, MARTÍN...
>
> Pero aún así esto hará que modifique la aplicación para que las peticiones
> de datos sean correctas. ¿Se os ocurre alguna forma de mejorar esto?
>
> Yo estoy pensando en hacer vistas sobre las tablas haciendo la conversión a
> SIN ACENTOS de todas las columnas, pero aún así tendría que modificar mi
> aplicación para que busque en v_nombres en lugar de en la tabla nombres.
>
> Alguna idea mejor para no tener que modificar la aplicación.
>
> Gracias por la ayuda.
>
> El 21 de septiembre de 2010 21:38, Román Mussi <romanmussi(at)nitrico(dot)com(dot)ar>escribió:
>
>> Hola,
>> Escribí algo en mi blog que por ahí te resulta útil. Te paso el link,
>>
>> http://romanmussi.blogspot.com/2009/12/busquedas-por-campos-de-texto-en.html
>> Saludos
>> Román
>>
>> ----- Original Message -----
>> *From:* José Manuel Ruiz <josemanuelruizbaena(at)gmail(dot)com>
>> *To:* pgsql-es-ayuda(at)postgresql(dot)org
>> *Sent:* Tuesday, September 21, 2010 12:59 PM
>> *Subject:* [pgsql-es-ayuda] Búsqueda de palabras con Acentos
>>
>> Buenas.
>>
>> Tengo un problema con una base de datos PostgreSQL con codificación
>> UNICODE que da soporte a una aplicación en PHP.
>>
>> Todo funcionaba correctamente hasta que me pidieron que una búsqueda de
>> por ejemplo "Martin" debería devolver los registros "Martin" y también los
>> "Martín".
>>
>> ¿Cómo puedo solucionar esto? Ya utilizo ilike en lugar de like para que no
>> distinta entre "Martin" y "martin".
>>
>> No me preocupaba hasta que me dí cuenta de que MySQL con codificación
>> utf8_general lo hace sin problemas. ¿Hay alguna solución para esto?
>>
>> --
>> "Comparte lo que sabes, aprende lo que no sepas"
>> Todo por el conocimiento libre
>>
>> Linux user number 441469
>>
>> Me gustaría cambiar el mundo, pero no tengo el código fuente !
>>
>> Me limito a dejar mi granito de arena en
>> http://blog.josemanuelruizbaena.com
>>
>>
>
>
> --
> "Comparte lo que sabes, aprende lo que no sepas"
> Todo por el conocimiento libre
>
> Linux user number 441469
>
> Me gustaría cambiar el mundo, pero no tengo el código fuente !
>
> Me limito a dejar mi granito de arena en
> http://blog.josemanuelruizbaena.com
>

--
Miguel Panuera,
Student of the School of Computer Science,
San Pablo Catholic University, Arequipa, Peru,
mpanuera[AT]gmail.com

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Max López Ulloa 2010-09-22 14:10:41 Re: Diferencia de horario entre postgresql y sistema operativo
Previous Message Ricardo Mendoza 2010-09-22 11:54:18 error en vacuum analyze