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

Lists: Postg토토 사이트 추천SQL
From: José Manuel Ruiz <josemanuelruizbaena(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Búsqueda de palabras con Acentos
Date: 2010-09-21 15:59:59
Message-ID: AANLkTikZJ5WMYTJHwXV2fykoahOvA_GhxySmU4Y5f2+O@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

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


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: José Manuel Ruiz <josemanuelruizbaena(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Búsqueda de palabras con Acentos
Date: 2010-09-21 16:45:05
Message-ID: 1285087303-sup-100@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Excerpts from José Manuel Ruiz's message of mar sep 21 11:59:59 -0400 2010:
> 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".

puedes usar el contrib unaccent; solo en 9.0 si mal no recuerdo.

o puedes usar la funcion to_ascii que reduce un texto de esta manera.
Creo que solo funciona en latin1 eso si, asi que debes convertir desde
utf8 a latin1 usando la funcion convert o convert_to.

no recuerdo los detalles exactos.

otra opcion es usar una funcion para quitar acentos que esta en el wiki.

--
Álvaro Herrera <alvherre(at)commandprompt(dot)com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


From: Román Mussi <romanmussi(at)nitrico(dot)com(dot)ar>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-21 19:38:03
Message-ID: FA5BE4DE43F744C4807DDFBE40F06C15@roman
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

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
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


From: José Manuel Ruiz <josemanuelruizbaena(at)gmail(dot)com>
To: Román Mussi <romanmussi(at)nitrico(dot)com(dot)ar>
Subject: Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-22 06:37:36
Message-ID: AANLkTiko6L0P0hAAUoBPYGbhSaDPx=rYVrXQxDmuDU0x@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

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


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
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


From: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
To: Miguel Panuera <mpanuera(at)gmail(dot)com>
Cc: josemanuelruizbaena(at)gmail(dot)com, PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>, Román Mussi <romanmussi(at)nitrico(dot)com(dot)ar>
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-22 18:23:14
Message-ID: AANLkTinr-9NRhR-Uj_3tzM3Z-mU1tOu5gjM_EkbMbrCx@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg토토 사이트 추천SQL

2010/9/22 Miguel Panuera <mpanuera(at)gmail(dot)com>:
> Buenas, al realizar estas funciones,
> tambien se deberia crear un indice con la funcion para optimizar la
> busqueda????????
>

En este caso no, porque esta usando ILIKE y ese operador nunca usa
indices ademas la funcion sp_ascii esta siendo declarada volatile,
pero si haces esto:

CREATE OR REPLACE FUNCTION sp_ascii(character varying)
RETURNS text AS
$BODY$
SELECT TRANSLATE
($1,
'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
'aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC');
$BODY$
LANGUAGE 'sql' IMMUTABLE;

(no veo problema en declarar la funcion IMMUTABLE, o la hay?)

CREATE INDEX idx_ascii_apellido ON nombres (lower(sp_ascii(apellido1)));

SELECT * FROM nombres WHERE lower(sp_ascii(apellido1)) LIKE
lower(sp_ascii('martin'));

deberia funcionar

--
Jaime Casanova         www.2ndQuadrant.com
Soporte y capacitación de PostgreSQL


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Román Mussi <romanmussi(at)nitrico(dot)com(dot)ar>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-22 20:06:33
Message-ID: 1285185977-sup-990@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Francamente yo me ahorarría todo esto y vería cómo usar FTS ...

--
Álvaro Herrera <alvherre(at)commandprompt(dot)com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Román Mussi <romanmussi(at)nitrico(dot)com(dot)ar>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-23 00:01:29
Message-ID: AANLkTi=RyiDpHUGu8Ws0aYdoJS5uULrGepGUfPCJiCi1@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

soundex ?

http://www.postgresonline.com/journal/archives/158-Where-is-soundex-and-other-warm-and-fuzzy-string-things.html

2010/9/23 Alvaro Herrera <alvherre(at)commandprompt(dot)com>:
>
> Francamente yo me ahorarría todo esto y vería cómo usar FTS ...
>
> --
> Álvaro Herrera <alvherre(at)commandprompt(dot)com>
> The PostgreSQL Company - Command Prompt, Inc.
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
> -
> 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
>

--
Saludos,
Horacio Miranda Aguilera.


From: Gunnar Wolf <gwolf(at)gwolf(dot)org>
To: José Manuel Ruiz <josemanuelruizbaena(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Búsqueda de palabras con Acentos
Date: 2010-09-23 18:56:10
Message-ID: 20100923185610.GH23660@gwolf.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

José Manuel Ruiz dijo [Tue, Sep 21, 2010 at 05:59:59PM +0200]:
> 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?

Ummm... Creo que -en líneas generales- estás buscando una solución
demasiado angosta ;-)

Si vas a hacer búsquedas sobre texto completo, y si quieres que además
estas búsquedas identifiquen palabras relacionadas (como Martin por
Martín, o como "educativo" por "educar"), puedes hacer tus búsquedas
usando TSearch2. Esto implica que manejes un trigger al crear o
modificar tus datos. Pero las ganancias bien valen la pena:

Carga primero las definiciones de tsearch2 - en mi caso (Debian, para
la DB 'test'):

$ psql test < /usr/share/postgresql/9.0/contrib/tsearch2.sql

Y ya desde psql

test=# select set_curcfg('spanish');
set_curcfg
------------

(1 row)

test=# CREATE TABLE blah (id serial, datos text, datos_vect tsvector);
NOTICE: CREATE TABLE will create implicit sequence "blah_id_seq" for
serial column "blah.id"
CREATE TABLE
test=# CREATE INDEX blah_idx ON blah USING gist(datos_vect);
CREATE INDEX
test=# CREATE TRIGGER vect_update BEFORE UPDATE OR INSERT ON blah FOR
EACH ROW EXECUTE PROCEDURE tsearch2(datos_vect, datos);
CREATE TRIGGER

Le aventamos algunos datos:

test=# INSERT INTO blah (datos) VALUES ('Martín martillaba educativos educadamente');
INSERT 0 1
test=# INSERT INTO blah (datos) VALUES ('¿Qué es lo que dices que Martin Martillaba?');
INSERT 0 1
test=# INSERT INTO blah (datos) VALUES ('Claramente he dicho que Martín martillaba educativos educadamente');
INSERT 0 1
test=# INSERT INTO blah (datos) VALUES ('Tu enunciado carece de educación. O por lo menos, carece de consistencia interna. Es incomprensible.');
INSERT 0 1
test=# INSERT INTO blah (datos) VALUES ('Entonces no hablamos de Martin, sino que de mi!');
INSERT 0 1

Y hacemos una consulta simple (con la sintaxis adecuada para
TSearch2):

test=# SELECT id, datos from blah where datos_vect @@ to_tsquery('Martín');
id | datos
----+-------------------------------------------------------------------
1 | Martín martillaba educativos educadamente
2 | ¿Qué es lo que dices que Martin Martillaba?
3 | Claramente he dicho que Martín martillaba educativos educadamente
5 | Entonces no hablamos de Martín, sino que de mi!
(4 rows)
id | datos
----+------------------------------------------------------------------------------------------------------
1 | Martín martillaba educativos educadamente
3 | Claramente he dicho que Martín martillaba educativos educadamente
4 | Tu enunciado carece de educación. O por lo menos, carece de consistencia interna. Es incomprensible.
(3 rows)

Bueno, y basta de trucos de mago. ¿Cómo ocurre esto en verdad? Veamos
qué es lo que en realidad estoy preguntando:

test=# select to_tsquery('Educar'), to_tsquery('Martín');
to_tsquery | to_tsquery
------------+------------
'educ' | 'martin'
(1 row)

¿Y cómo están guardados los datos para responder a esta solicitud?

test=# select datos_vect from blah;
datos_vect
--------------------------------------------------------------------------------------
'educ':3,4 'martill':2 'martin':1
'dic':5 'martill':8 'martin':7
'clar':1 'dich':3 'educ':7,8 'martill':6 'martin':5
'carec':3,10 'consistent':12 'educ':5 'enunci':2 'incomprens':15 'intern':13 'men':9
'entonc':1 'habl':3 'martin':5 'sin':6
(5 rows)

Espero que te sea más útil que simplemente botar acentos ;-)


From: p valdes <p(dot)valdes334(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Fwd: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-26 17:25:01
Message-ID: AANLkTinN38M06qbg6aA-mGNY4zGmHvhBGaoC+Rte5WOL@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Select bla-bla-bla from tablablabla where campo is like 'Mart%' o algo así ...


From: p valdes <p(dot)valdes334(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-26 17:27:44
Message-ID: AANLkTinh8=um5=ZU9E14F5MtLUoKRjJuDZ574TrJmTYy@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

he añadido un IS de mas, efectivamente, en realidad es

select X from Tabla where X LIKE 'Mart%';

En resúmen, busca en el manual el uso de LIKE y SIMILAR


From: Gunnar Wolf <gwolf(at)gwolf(dot)org>
To: p valdes <p(dot)valdes334(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-29 16:23:42
Message-ID: 20100929162342.GB31044@gwolf.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

p valdes dijo [Sun, Sep 26, 2010 at 07:27:44PM +0200]:
> he añadido un IS de mas, efectivamente, en realidad es
>
> select X from Tabla where X LIKE 'Mart%';
>
> En resúmen, busca en el manual el uso de LIKE y SIMILAR

Claro, eso se puede si conoces la palabra exacta que vas a buscar,
pero si estás trabajando con entrada directa del usuario, te conviene
ser tan amplio como puedas. En este caso, TSearch2 va a encontrar
mucho más (y mejores) coincidencias.

¡Ah, claro! Y mucho más eficiente. Cuando buscas con LIKE o SIMILAR
TO sobre un campo de texto, es prácticamente inevitable que termines
haciendo búsquedas secuenciales sobre _todos_ tus
registros. Obviamente, cuando tienes un cuerpo de datos
suficientmente amplio, esto se vuelve prohibitivo. TSearch2 indexa
sobre las (partículas de las) palabras individuales.


From: "\(Syswarp\) Carlos Enrique Perez" <carlos(dot)perez(at)syswarp(dot)com(dot)ar>
To: "'Gunnar Wolf'" <gwolf(at)gwolf(dot)org>, "'p valdes'" <p(dot)valdes334(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-29 17:57:18
Message-ID: 98445F43B5884172BA385A093F1D6A50@COCOT
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Mirate esto:
http://romanmussi.blogspot.com/2009/12/busquedas-por-campos-de-texto-en.html

-----Mensaje original-----
De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Gunnar Wolf
Enviado el: miércoles, 29 de septiembre de 2010 13:24
Para: p valdes
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Búsqueda de palabras con
Acentos

p valdes dijo [Sun, Sep 26, 2010 at 07:27:44PM +0200]:
> he añadido un IS de mas, efectivamente, en realidad es
>
> select X from Tabla where X LIKE 'Mart%';
>
> En resúmen, busca en el manual el uso de LIKE y SIMILAR

Claro, eso se puede si conoces la palabra exacta que vas a buscar, pero si
estás trabajando con entrada directa del usuario, te conviene ser tan amplio
como puedas. En este caso, TSearch2 va a encontrar mucho más (y mejores)
coincidencias.

¡Ah, claro! Y mucho más eficiente. Cuando buscas con LIKE o SIMILAR TO sobre
un campo de texto, es prácticamente inevitable que termines haciendo
búsquedas secuenciales sobre _todos_ tus registros. Obviamente, cuando
tienes un cuerpo de datos suficientmente amplio, esto se vuelve prohibitivo.
TSearch2 indexa sobre las (partículas de las) palabras individuales.
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

__________ Information from ESET NOD32 Antivirus, version of virus signature
database 5489 (20100929) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com


From: Guillermo Villanueva <guillermovil(at)gmail(dot)com>
To: "(Syswarp) Carlos Enrique Perez" <carlos(dot)perez(at)syswarp(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Búsqueda de palabras con Acentos
Date: 2010-09-29 18:22:10
Message-ID: AANLkTimKGTw8_3i3GB9RtW_qxW_HaM2eUbkTQuseauPF@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Jaja, dio tantas vueltas este tema que terminamos respondiendo lo mismo que
en el 2do post.
Saludos

~~~~~~~~~~~~~~~~
Guillermo Villanueva

El 29 de septiembre de 2010 14:57, (Syswarp) Carlos Enrique Perez <
carlos(dot)perez(at)syswarp(dot)com(dot)ar> escribió:

> Mirate esto:
>
> http://romanmussi.blogspot.com/2009/12/busquedas-por-campos-de-texto-en.html
>
>
>