Search Postgresql Archives

%tsearch gendict snowball spanish

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
        


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux