Re: %tsearch gendict snowball spanish - Mailing list pgsql-general

From Oleg Bartunov
Subject Re: %tsearch gendict snowball spanish
Date
Msg-id Pine.LNX.4.64.0703121231270.400@sn.sai.msu.ru
Whole thread Raw
In response to %tsearch gendict snowball spanish  (David Gama Rodriguez <david.gama@inegi.gob.mx>)
List pgsql-general
David,

you need http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/tsearch_snowball_82.gz -
patch for 8.2 release, which updates snowball API.
You need it only for the new stemmers from sbowball site !

I'm not sure if it will apply for 8.1.8.

Oleg

On Sun, 11 Mar 2007, David Gama Rodriguez wrote:

> 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
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
>       subscribe-nomail command to majordomo@postgresql.org so that your
>       message can get through to the mailing list cleanly
>

     Regards,
         Oleg
_____________________________________________________________
Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru),
Sternberg Astronomical Institute, Moscow University, Russia
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(495)939-16-83, +007(495)939-23-83

pgsql-general by date:

Previous
From: "Albe Laurenz"
Date:
Subject: Re: DBD::Pg/perl question, kind of...
Next
From: cedric
Date:
Subject: Re: Tsearch2 / Create rule on select