|
From: TECHER D. <dav...@ya...> - 2007-01-31 06:09:01
|
Hi
I'm a newby and I'm French. So excuse-me for my bad English
I've tryed to use tsearch with PostgreSQL but I got this error
test=# select lexize('fr_ispell','école');
ERROR: Affix parse error at 130 line
test=#
Thanks for your help!
Perhaps in order to you being able to help me, I will give you what I did
I've installed PostgreSQL 8.2.1
That I applied the patch from
http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/
wget
http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/tsearch_snowball_82.gz
gunzip tsearch_snowball_82.gz
cd postgresql_src
patch -p0 < tsearch_snowball_82
cd contrib/tsearch2/
make
make install
For gendict
cd /mnt/sources/postgresql-8.2.1/contrib/tsearch2/gendict
wget http://snowball.tartarus.org/algorithms/french/tarball.tgz
tar xvzf tarball.tgz
cp french/stem_UTF_8.h stem.h
cp french/stem_UTF_8.c stem.c
./config.sh -n fr -s -p french_UTF_8 -i -v -c stem.h -h stem.h
-C'Snowball stemmer for French'
cd ../../gendict
make
make install
Then
createdb test
psql -d test -f /opt/pgsql/share/contrib/tsearch2.sql
psql -d test -f /opt/pgsql/share/contrib/dict_fr.sql
Doing few test
test=# select lexize('fr','chercheurs');
lexize
-------------
{chercheur}
(1 ligne)
test=# select lexize('fr','chercheuse');
lexize
-------------
{chercheux}
(1 ligne)
OK
Then I tryed to use the doc from
http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/docs/tsearch2_german_utf8.html
since I'm on Ubuntu
I did
BEGIN TRANSACTION;
UPDATE pg_ts_dict SET
dict_initoption='/home/postgres/4tsearch/ispell-french_utf8/french.stop'
WHERE dict_name = 'fr';
INSERT INTO pg_ts_cfg (ts_name, prs_name, locale) VALUES
('default_french', 'default', 'fr_FR.UTF-8');
insert into pg_ts_cfgmap values ('default_french','email','{simple}');
insert into pg_ts_cfgmap values ('default_french','file','{simple}');
insert into pg_ts_cfgmap values ('default_french','float','{simple}');
insert into pg_ts_cfgmap values ('default_french','host','{simple}');
insert into pg_ts_cfgmap values ('default_french','hword','{simple}');
insert into pg_ts_cfgmap values ('default_french','int','{simple}');
insert into pg_ts_cfgmap values ('default_french','lhword','{fr_ispell}');
insert into pg_ts_cfgmap values
('default_french','lpart_hword','{fr_ispell}');
insert into pg_ts_cfgmap values ('default_french','nlhword','{simple}');
insert into pg_ts_cfgmap values
('default_french','nlpart_hword','{simple}');
insert into pg_ts_cfgmap values ('default_french','part_hword','{simple}');
insert into pg_ts_cfgmap values ('default_french','sfloat','{simple}');
insert into pg_ts_cfgmap values ('default_french','uint','{simple}');
insert into pg_ts_cfgmap values ('default_french','uri','{simple}');
insert into pg_ts_cfgmap values ('default_french','url','{simple}');
insert into pg_ts_cfgmap values ('default_french','version','{simple}');
insert into pg_ts_cfgmap values ('default_french','word','{fr_ispell,fr}');
insert into pg_ts_cfgmap values ('default_french','nlword','{fr_ispell}');
insert into pg_ts_cfgmap values
('default_french','lword','{fr_ispell,simple}');
INSERT INTO pg_ts_dict
(SELECT 'fr_ispell',
dict_init,
'DictFile="/home/postgres/4tsearch/ispell-french_utf8/french.dict",'
'AffFile="/home/postgres/4tsearch/ispell-french_utf8/french.aff",'
'StopFile="/home/postgres/4tsearch/ispell-french_utf8/french.stop"',
dict_lexize
FROM pg_ts_dict
END TRANSACTION;
Did I do something wrong?
Help please?
Thanks.
--david;
___________________________________________________________________________
Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire.
http://fr.mail.yahoo.com
|