postgresql/src/backend/snowball
Tom Lane 2b74d45c1b pg_do_encoding_conversion cannot return NULL (at least not unless the input
is NULL), so remove some useless tests for the case.
2008-11-10 15:18:40 +00:00
..
libstemmer Tsearch2 functionality migrates to core. The bulk of this work is by 2007-08-21 01:11:32 +00:00
stopwords Add turkish stopword list. Thanks to Devrim GUNDUZ <devrim@CommandPrompt.com> 2007-09-07 14:46:43 +00:00
Makefile Implement a few changes to how shared libraries and dynamically loadable 2008-04-07 14:15:58 +00:00
README More README src cleanups. 2008-03-21 13:23:29 +00:00
dict_snowball.c pg_do_encoding_conversion cannot return NULL (at least not unless the input 2008-11-10 15:18:40 +00:00
snowball.sql.in Rename default text search parser's "uri" token type to "url_path", 2007-10-27 16:01:09 +00:00
snowball_func.sql.in Improve stylistic consistency of descriptions of built-in objects by avoiding 2007-09-03 02:30:45 +00:00

README

$PostgreSQL: pgsql/src/backend/snowball/README,v 1.3 2008/03/21 13:23:28 momjian Exp $

Snowball-Based Stemming
=======================

This module uses the word stemming code developed by the Snowball project,
http://snowball.tartarus.org/
which is released by them under a BSD-style license.

The files under src/backend/snowball/libstemmer/ and
src/include/snowball/libstemmer/ are taken directly from their libstemmer_c
distribution, with only some minor adjustments of file inclusions.  Note
that most of these files are in fact derived files, not master source.
The master sources are in the Snowball language, and are available along
with the Snowball-to-C compiler from the Snowball project.  We choose to
include the derived files in the PostgreSQL distribution because most
installations will not have the Snowball compiler available.

To update the PostgreSQL sources from a new Snowball libstemmer_c
distribution:

1. Copy the *.c files in libstemmer_c/src_c/ to src/backend/snowball/libstemmer
with replacement of "../runtime/header.h" by "header.h", for example

for f in libstemmer_c/src_c/*.c
do
    sed 's|\.\./runtime/header\.h|header.h|' $f >libstemmer/`basename $f`
done

(Alternatively, if you rebuild the stemmer files from the master Snowball
sources, just omit "-r ../runtime" from the Snowball compiler switches.)

2. Copy the *.c files in libstemmer_c/runtime/ to
src/backend/snowball/libstemmer, and edit them to remove direct inclusions
of system headers such as <stdio.h> --- they should only include "header.h".
(This removal avoids portability problems on some platforms where <stdio.h>
is sensitive to largefile compilation options.)

3. Copy the *.h files in libstemmer_c/src_c/ and libstemmer_c/runtime/
to src/include/snowball/libstemmer.  At this writing the header files
do not require any changes.

4. Check whether any stemmer modules have been added or removed.  If so, edit
the OBJS list in Makefile, the list of #include's in dict_snowball.c, and the
stemmer_modules[] table in dict_snowball.c.

5. The various stopword files in stopwords/ must be downloaded
individually from pages on the snowball.tartarus.org website.
Be careful that these files must be stored in UTF-8 encoding.