Cree otro topic....

Sigo entreverado....
Despues de hacer 
postg...@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/
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a