summaryrefslogtreecommitdiff
path: root/contrib/tsearch2/gendict/README.gendict
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/tsearch2/gendict/README.gendict')
-rw-r--r--contrib/tsearch2/gendict/README.gendict130
1 files changed, 130 insertions, 0 deletions
diff --git a/contrib/tsearch2/gendict/README.gendict b/contrib/tsearch2/gendict/README.gendict
new file mode 100644
index 0000000000..e91f1b75a3
--- /dev/null
+++ b/contrib/tsearch2/gendict/README.gendict
@@ -0,0 +1,130 @@
+Gendict - generate dictionary templates for contrib/tsearch2 module.
+
+This utility aims to help people creating dictionary for contrib/tsearch v2
+module. Particularly, it has built-in support for snowball stemmers.
+
+Programming API to tsearch2 dictionaries is described in tsearch v2
+documentation.
+
+
+Prerequisities:
+
+* PostgreSQL 7.3 and above.
+
+* You need tsearch2 module sources already compiled
+
+* Rights to install contrib modules
+
+Usage:
+
+ run config.sh without parameters to see options and arguments
+
+Usage:
+./config.sh -n DICTNAME ( [ -s [ -p PREFIX ] ] | [ -c CFILES ] [ -h HFILES ] [ -i ] ) [ -v ] [ -d DIR ] [ -C COMMENT ]
+ -v - be verbose
+ -d DIR - name of directory in PGSQL_SRC/contrib (default dict_DICTNAME)
+ -C COMMENT - dictionary comment
+Generate Snowball stemmer:
+./config.sh -n DICTNAME -s [ -p PREFIX ] [ -v ] [ -d DIR ] [ -C COMMENT ]
+ -s - generate Snowball wrapper
+ -p - prefix of Snowball's function, (default DICTNAME)
+Generate template dictionary:
+./config.sh -n DICTNAME [ -c CFILES ] [ -h HFILES ] [ -i ] [ -v ] [ -d DIR ] [ -C COMMENT ]
+ -c CFILES - source files, must be placed in contrib/tsearch2/gendict directory.
+ These files will be used in Makefile.
+ -h HFILES - header files, must be placed in contrib/tsearch2/gendict directory.
+ These files will be used in Makefile and subinclude.h
+ -i - dictionary has init method
+
+
+Example 1:
+
+ Create Portuguese stemmer
+
+ 0. cd PGSQL_SRC/contrib/tsearch2/gendict
+
+ 1. Obtain stem.{c,h} files for Portuguese
+
+ wget http://snowball.tartarus.org/portuguese/stem.c
+ wget http://snowball.tartarus.org/portuguese/stem.h
+
+ 2. Create template files for Portuguese
+
+ ./config.sh -n pt -s -p portuguese -v -C'Snowball stemmer for Portuguese'
+
+ Note, that argument for -p option should be *the same* as name of stemming
+ function in stem.c (without _stem)
+
+ A bunch of files will be generated and placed in PGSQL_SRC/contrib/dict_pt
+ directory.
+
+ 3. Compile and install dictionary
+
+ cd PGSQL_SRC/contrib/dict_pt
+ make
+ make install
+
+ 4. Test it
+
+ Sample portuguese words with the stemmed forms are available
+ from http://snowball.tartarus.org/portuguese/stemmer.html
+
+ createdb testdict
+ psql testdict < /usr/local/pgsql/share/contrib/tsearch2.sql
+ psql testdict < /usr/local/pgsql/share/contrib/dict_pt.sql
+ psql -d testdict -c "select lexize('pt','bobagem');"
+ lexize
+ ---------
+ {bobag}
+ (1 row)
+
+ Here is what I have in pg_ts_dict table
+
+ psql -d testdict -c "select * from pg_ts_dict where dict_name='pt';"
+ dict_name | dict_init | dict_initoption | dict_lexize | dict_comment
+ -----------+-----------+-----------------+-------------+---------------------------------
+ pt | 7177806 | | 7159330 | Snowball stemmer for Portuguese
+ (1 row)
+
+
+ Note, that you have already installed dictionary and corresponding
+ entry in tsearch configuration and you may modify it using
+ plain SQL commands, for example, specify stop words.
+
+Example 2:
+
+ a) Simple template dictionary with init method
+
+ ./config.sh -n wow -v -i -C WOW
+
+ b) Create simple template dict (without init method):
+ ./config.sh -n wow -v -C WOW
+
+ The same as above, but dictionary will have not init method
+
+ Dictionaries obtained in a) and b) are fully working and ready
+ for use:
+ a) lowercase input word and remove it if it is a stop word
+ b) recognizes any word
+
+ c) Simple template dictionary with source files (with init method):
+
+ ./config.sh -n wow -v -i -c a.c -h a.h -C WOW
+
+ Source files ( a.c ) must be placed in contrib/tsearch2/gendict directory.
+ These files will be used in Makefile.
+
+ Header files ( a.h ), must be placed in contrib/tsearch2/gendict directory.
+ These files will be used in Makefile and subinclude.h
+
+ d) Simple template dictionary with source files (without init method):
+
+ ./config.sh -n wow -v -c a.c -h a.h -C WOW
+
+ The same as above, but dictionary will have not init method
+
+ After that you have sources in PGSQL_SRC/contrib/dict_wow and
+ you may edit them to create actual dictionary.
+
+ Please, check Tsearch2 home page (http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/)
+ for additional information about "Gendict tutorial" and dictionaries. \ No newline at end of file