Re: Manejo de Tsearch

From: "Emanuel Calvo Franco" <postgres(dot)arg(at)gmail(dot)com>
To: "Gabriel Ferro" <gabrielrferro(at)yahoo(dot)com(dot)ar>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Manejo de Tsearch
Date: 2009-01-07 12:28:28
Message-ID: f205bb120901070428y5aba4412t55a99727d14918a8@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2009/1/7 Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>:
> ----- Mensaje original ----
>
>> De: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
>> Para: pgsql-es-ayuda(at)postgresql(dot)org
>> Enviado: martes 6 de enero de 2009, 19:15:32
>> Asunto: Re: [pgsql-es-ayuda] Manejo de Tsearch
>>
>> El problema creo que tengo todo en ingles
>> mirando locate
>> LANG=en_US.UTF-8
>> LC_CTYPE="en_US.UTF-8"
>> LC_NUMERIC="en_US.UTF-8"
>> LC_TIME="en_US.UTF-8"
>> LC_COLLATE="en_US.UTF-8"
>> LC_MONETARY="en_US.UTF-8"
>> LC_MESSAGES="en_US.UTF-8"
>> LC_PAPER="en_US.UTF-8"
>> LC_NAME="en_US.UTF-8"
>> LC_ADDRESS="en_US.UTF-8"
>> LC_TELEPHONE="en_US.UTF-8"
>> LC_MEASUREMENT="en_US.UTF-8"
>> LC_IDENTIFICATION="en_US.UTF-8"
>> LC_ALL=
>>
>> y teniendo las tablas en UTF-8
>> solo debo cambiar LC_COLLATE por algo?
>>
>> cual seria ese algo?
>> con que comando?
>> No funcionaran mal algunas otras cosas?, les recuerdo que el server maneja
>> muchas cosas, como correo, mensajeria, etc., habiendo bases de datos para
>> openfire, postfiz, radius.. etc...
>>
>>
>>
>>
>> En mi base de datos uso CLIENT_ENCODING='LATIN1'
>> ----- Mensaje original ----
>> > De: Gabriel Ferro
>> > Para: Alvaro Herrera ; pgsql-es-ayuda(at)postgresql(dot)org
>> > Enviado: martes 6 de enero de 2009, 17:24:04
>> > Asunto: Re: [pgsql-es-ayuda] Manejo de Tsearch
>> >
>> >
>> >
>> >
>> >
>> > ----- Mensaje original ----
>> > > De: Alvaro Herrera
>> > > Para: Gabriel Ferro
>> > > CC: pgsql-es-ayuda(at)postgresql(dot)org
>> > > Enviado: lunes 5 de enero de 2009, 12:38:51
>> > > Asunto: Re: [pgsql-es-ayuda] Manejo de Tsearch
>> > >
>> > > Gabriel Ferro escribió:
>> > >
>> > > > pero cuando hago
>> > > > UPDATE padrones.personas SET isearch_nombre = to_tsvector(nombre);
>> > > >
>> > > > me da
>> > > > ERROR: could not find tsearch config by locale
>> > > > ********** Error **********
>> > > > ERROR: could not find tsearch config by locale
>> > > > Estado SQL:F0000
>> > >
>> > > Especifica el nombre de la configuracion:
>> > >
>> > > to_tsvector(nombre, 'default_spanish')
>> > >
>> > > --
>> > > Alvaro Herrera Developer,
>> http://www.PostgreSQL.org/
>> > > Management by consensus: I have decided; you concede.
>> > > (Leonard Liu)
>> >
>> >
>> > Master, No me anduvo, me casi lo mismo
>> >
>> > select to_tsvector(padrones.personas.nombre,'default_spanish') from
>> > padrones.personas limit 1;
>> > ERROR: no tsearch config
>> >
>> > Entonces miro el contenido de la tabla de configuracion
>> > select * from pg_ts_cfg;
>> > ts_name | prs_name | locale
>> > -----------------+----------+--------------
>> > default | default | C
>> > default_russian | default | ru_RU.KOI8-R
>> > utf8_russian | default | ru_RU.UTF-8
>> > simple | default |
>> > default_spanish | default | es_NI
>> > (5 rows)
>> >
>> > buscando en internet analizo
>> >
>> > select current_setting('lc_collate');
>> > current_setting
>> > -----------------
>> > en_US.UTF-8
>> >
>> > entonces hago
>> > update pg_ts_cfg set locale=current_setting('lc_collate') where
>> > ts_name='default';
>> >
>> > y pruebo
>> >
>> > select to_tsvector(padrones.personas.nombre) from padrones.personas
>> > limit 1;
>> > to_tsvector
>> > ----------------------------------
>> > 'maria':2 'noelia':3 'aballay':1
>> >
>> > anduvo
>> >
>> > pero estoy usando "default" que tiene "en_US.UTF-8" cuando quiero usar
>> > "default_spanish" me da el error.. no me toma es_NI...
>> > tampoco se si me me estara tomando los datos de espanol.aff, .dict y .stop.
>> >
>> >
>> >
>> > que me esta pasando?
>> >
>
>
>
> En verdad nunca estuve tan desesperado... ya no se que cornos hacer....
>
> tengo esto
>
> select * from pg_ts_cfg;
> ts_name | prs_name | locale
> -----------------+----------+--------------
> default_russian | default | ru_RU.KOI8-R
> utf8_russian | default | ru_RU.UTF-8
> simple | default |
> default | default | en_US.UTF-8
> default_spanish | default | en_US.UTF-8
> (5 rows)
>
> select to_tsvector('default_spanish','hola coco');
> ERROR: invalid byte sequence for encoding "UTF8": 0xe16261
> HINT: This error can also happen if the byte sequence does not match
> the encoding expected by the server, which is controlled by
> "client_encoding".
>
> select to_tsvector('default','hola coco');
> to_tsvector
> -------------------
> 'coco':2 'hola':1
> (1 row)
>
> porque cornos me anda default y no default_spanish no lo se...
> tengo el set client_encoding='LATIN1'
>
> pero lo he probado con UTF8 y otros y me da igual
>
> cambie el valor default_spanish de la tabla por es_NI que era el original y sigo igual....
>
> A mi locale no lo he tocado...creo que deberia hacer
> 1- Agregar a /var/lib/locales/supported.d/local
> es_AR.UTF-8 UTF-8
> es_AR.ISO-8859-15 ISO-8859-15
> y luego sudo dpkg-reconfigure locales
>
> pero temo meter la pata....
>
> ayuda por favor......,
>

Porque no te armas un ambiente de testeo con la misa versión de pgsql
en una virtual o similar con la misma version del servidor y probas
(con algunos datos del server)?

Otra solución no muy viable sería planchar el diccionario del tsearch
ingles con el del español, eso no tocaría la configuración, pero es
mucha mano...

>
> Yahoo! Cocina
> Recetas prácticas y comida saludable
> http://ar.mujer.yahoo.com/cocina/
> --
> TIP 5: ¿Has leído nuestro extenso FAQ?
> http://www.postgresql.org/docs/faqs.FAQ.html
>

--
Emanuel Calvo Franco
Syscope Postgresql Consultant
ArPUG / AOSUG Member

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-01-07 13:14:21 Re: Manejo de Tsearch
Previous Message Gabriel Ferro 2009-01-07 12:10:06 Re: Manejo de Tsearch