Manejo de Tsearch

From: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Manejo de Tsearch
Date: 2009-01-05 11:52:17
Message-ID: 616413.40562.qm@web52101.mail.re2.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Cree otro topic....

Sigo entreverado....
Despues de hacer
postgres(at)server:/root$ psql -d incrimpoler -f /usr/share/postgresql/8.2/contrib/tsearch2.sql
se me crearon las tablas que usa tsearch
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

buscando en google encontre que al tener la BD en UTF8 debo hacer
update pg_ts_cfg set locale='UTF8' where ts_name='default';

pruebo de nuevo el UPDATE padrones.personas SET isearch_nombre = to_tsvector(nombre);
ERROR: could not find tsearch config by locale

entonces hago
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_spanish | default | es_NI
default | default | UTF8

en cambio si hago
update pg_ts_cfg set locale = current_setting('lc_collate') where ts_name = 'default';
obtengo
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_spanish | default | es_NI
default | default | en_US.UTF-8
(5 rows)

y luego UPDATE padrones.personas SET isearch_nombre = to_tsvector(nombre);

y anduvo.. ahora pruebo

SELECT *,headline(nombre,q),
rank(isearch_nombre,q)
FROM padrones.personas,
to_tsquery('pirulo') AS q
WHERE isearch_nombre @@ q ORDER BY rank(idx_nombre_search,q) DESC;

y la cosa es que anda, me da todos los registros donde aparece la palabra pirulo, pero si por ejemplo tengo pirulo2 esta no me aparece, entonces....
si deseo buscar los gabriel, gabriela, sangabriel, gabrielito, etc....el tsearch no me sirve?, es decir que en esos casos estoy obilgado a usar LIKE '%gabriel% ?

Les aclaro que para poder hacer todo esto le tuve que dar un grant al usuario ya que el unico que podia trabajarlas
era el usuario postgres.. incluso para hacer las busquedas necesitas tener permiso por mas que las tablas esten en public.

Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Emanuel Calvo Franco 2009-01-05 14:07:49 Re: Error al compilar 8.4devel en xubuntu
Previous Message Calabaza 2009-01-05 10:17:35 Re: un query para leer las estructuras de las tablas