%tsearch gendict snowball spanish - Mailing list pgsql-general
From | David Gama Rodriguez |
---|---|
Subject | %tsearch gendict snowball spanish |
Date | |
Msg-id | 1173675131.19035.0.camel@localhost.localdomain Whole thread Raw |
Responses |
Re: %tsearch gendict snowball spanish
|
List | pgsql-general |
Hi everyone!! I have an implementation of tsearch2 with spanish stemmers. I updated postgres to 8.1.8 version and I was going to reinstall the tsearch2 contrib, everything was fine until I try to compile the spanish stemmers with gendict $ ./config.sh -n sp -s -p spanish_ISO_8859_1 -v -C'Snowball stemmer for Spanish' Dictname: 'sp' Snowball stemmer: yes Has init method: yes Function prefix: spanish_ISO_8859_1 Source files: stem.c Header files: stem.h Object files: stem.o dict_snowball.o Comment: 'Snowball stemmer for Spanish' Directory: ../../dict_sp Build directory... ok Build Makefile... ok Build dict_sp.sql.in... ok Copy source and header files... ok Build sub-include header... ok Build Snowball stemmer... ok Build README.sp... ok All is done after I get this error: stem.c: En la función 'spanish_ISO_8859_1_close_env': stem.c:1092: error: demasiados argumentos para la función 'SN_close_env' make: *** [stem.o] Error 1 error: too many arguments to function 'SN_close_env' So I search this error on the list and I see some posts related. One of this posts says that I have to patch to get an updated snowball API. I download the patch from: http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/gin_tsearch2_81.gz and I apply the patch this way $ cd PG_SRC/ $ patch -b -p0 < gin_tsearch2_81 Everything going fine and recompile tsearch2 So I try to compile the stemmer again $ ./config.sh -n sp -s -p spanish_ISO_8859_1 -v -C'Snowball stemmer for Spanish' $ cd ../../dict_sp $ make stem.c: En la función 'spanish_ISO_8859_1_close_env': stem.c:1092: error: demasiados argumentos para la función 'SN_close_env' make: *** [stem.o] Error 1 And again I have the same error: too many arguments..... So my question is why after I apply the patch I have the same error? What did I do wrong? I take some paths to solve this issue I post here which finally works for me: 1.- Download Postgresql-8.1.8 sources 2.- Download the C implementation of snowball http://snowball.tartarus.org/dist/libstemmer_c.tgz 3.- Download the patch to update Snowball API http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/gin_tsearch2_81.gz 4.- Unpack postgresql sources 5.- Unpack Snowball C 6.- Unpack the patch 7.- Apply patch with: $ cp gin_tsearch2_81 PG_SRC/ $ cd PG_SRC $ patch -b -p0 < gin_tsearch2_81 8.- Do configure $ ./configure 9.- Copy the Snowball API to Tsearch2 dir $ cp libstemmer_c/runtime/* PG_SRC/contrib/tsearch2/snowball/ 10.- Copy english and russian stemmers $ cp stem_ISO_8859_1_english.c PG_SRC/contrib/tsearch2/snowball/english_stem.c $ cp stem_ISO_8859_1_english.h PG_SRC/contrib/tsearch2/snowball/english_stem.h $ cp stem_KOI8_R_russian.c PG_SRC/contrib/tsearch2/snowball/russian_stem.c $ cp stem_KOI8_R_russian.h PG_SRC/contrib/tsearch2/snowball/russian_stem.h $ cp stem_UTF_8_russian.h PG_SRC/contrib/tsearch2/snowball/russian_stem_UTF8.h $ cp stem_UTF_8_russian.c PG_SRC/contrib/tsearch2/snowball/russian_stem_UTF8.c 11.- Change in english_stem.c, russian_stem.c, rusian_stem_UTF8.c the line with: #include "../untime/header.h" to: #include "header.h" 12.- Compile tsearch2 $ make $ make install 13.- Copy spanish stemmer $ cp libstemmer_c/src_c/stem_ISO_8859_1_spanish.c PG_SRC/contrib/tsearch2/gendict/stem.c $ cp libstemmer_c/src_c/stem_ISO_8859_1_spanish.h PG_SRC/contrib/tsearch2/gendict/stem.h 14.- Go to gendict directory and do the same sustitution in step 11 with stem.c file 15.- Do: $ ./config.sh -n sp -s -p spanish_ISO_8859_1 -v -C'Snowball stemmer for Spanish' 16.- Go to ../../dict_sp and compile $ make And have no errors finally this works, I have many doubts related with this way of add tsearch2 and snowball spanish like: Is safe to add this to a DB in production? This compilation it's "fine" I mean it's correct? I will have some issues when I put this to work? I know this is dificult to say but I ask you because you have more experience with this Cheers mates!! BTW I hope this mini HOW_TO helps others
pgsql-general by date: