Здравствуйте.
Пытаюсь на солярке сделать базу в 1251 и к ней прикрутить tsearch2. Всё
бы хорошо, но локаль там почему-то называется ru_RU.ANSI1251 вместо
ru_RU.CP1251 и постгрес заявляет буквально следующее:
psql:table.sql:238: ERROR: could not find tsearch config by locale
Можно ли где-то прописать и что, чтобы такой ошибки не возникало? Или
проблема не в этом и локаль для tsearch всегда должна быть koi8-r? В
общем, хотелось бы узнать хоть где искать причину - в tsearch, в
постгресе, ещё где-то...
Вот что в базе:
INSERT INTO pg_ts_dict
(SELECT 'ru_ispell',
dict_init,
'DictFile="/usr/local/cms1/sql/russian.dict",'
'AffFile="/usr/local/cms1/sql/russian.aff",'
'StopFile="/usr/local/cms1/sql/russian.stop"',
dict_lexize
FROM pg_ts_dict
WHERE dict_name = 'ispell_template');
UPDATE pg_ts_cfg SET locale = 'ru_RU.ANSI1251' WHERE ts_name =
'default_russian';
DELETE FROM pg_ts_cfgmap WHERE ts_name = 'default_russian';
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'lhword',
'{ru_ispell,ru_stem}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'lpart_hword',
'{ru_ispell,ru_stem}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'lword',
'{ru_ispell,ru_stem}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'url', '{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'host', '{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'sfloat', '{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'uri', '{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'int', '{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'float', '{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'email', '{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'word', '{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'hword',
'{ru_ispell,ru_stem}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'nlword',
'{ru_ispell,ru_stem}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'nlpart_hword',
'{ru_ispell,ru_stem}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'part_hword',
'{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'nlhword',
'{ru_ispell,ru_stem}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'file', '{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'uint', '{simple}');
INSERT INTO pg_ts_cfgmap VALUES ('default_russian', 'version', '{simple}');
CREATE TABLE article (
...
vector tsvector
);
CREATE INDEX article_vector_key ON article USING gist(vector);
CREATE TRIGGER article_vector_update BEFORE UPDATE OR INSERT ON article
FOR EACH ROW EXECUTE PROCEDURE tsearch2(vector, name, title, content,
author);