Some advices for common programmers problems

1.Instalujemy tsearch2 (np. w Ubuntu: postgresql-contrib-8.2 - additional facilities for postgreSQL)

2.W bazie wykonujemy

edokumenty=# \i /usr/share/postgresql/8.2/contrib/tsearch2.sql

Pózniej pamiętamy o odpowiednich grantach.

3. Wykonujemy

update pg_ts_cfg set locale=’pl_PL.UTF-8′ where ts_name=’simple’;

INSERT INTO pg_ts_cfgmap (ts_name, tok_alias, dict_name)
VALUES (’default_polish’, ‘lhword’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap (ts_name, tok_alias, dict_name)
VALUES (’default_polish’, ‘lpart_hword’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap (ts_name, tok_alias, dict_name)
VALUES (’default_polish’, ‘lword’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘url’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘host’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ’sfloat’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘uri’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘int’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘float’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘email’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘word’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘hword’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘nlword’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘nlpart_hword’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘part_hword’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘nlhword’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘file’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘uint’, ‘{pl_ispell}’);
INSERT INTO pg_ts_cfgmap
VALUES (’default_polish’, ‘version’, ‘{pl_ispell}’);

INSERT INTO pg_ts_cfg (ts_name, prs_name, locale) VALUES (’default_polish’, ‘default’, ‘pl_PL.UTF-8′);

4. Tworzymy słowniki czyli:
a. ściągamy polski ispell
b. polish.aff już tam jest
c. polish.dic tworzymy poprzez dodanie do siebie słowników ze słowami, które nas interesują: cat slownik1 >> destin [ENTER] cat slownik2 >> destin [ENTER]
d. polish.stop tworzymy sami. Jest to lista słów bez określonego znaczenia dla danego języka (np. ‘i’, ‘oraz’, ‘gdziekolwiek’)
e. pamiętamy o skonwertowaniu słowników do utf8

5. Wykonujemy

INSERT INTO pg_ts_dict (
SELECT
‘pl_ispell’,dict_init,
‘DictFile=”/path/to/dict//polish.dic”,
AffFile=”/path/to/dict/polish.aff”,
StopFile=”/path/to/dict/polish.stop”‘,
dict_lexize
FROM pg_ts_dict
WHERE dict_name = ‘ispell_template’);

6. Narazie mamy słownik