-- first change the database name in the alter database command below
-- create dictionary using files installed by english.sh script
create text search dictionary english_ispell (
template = ispell,
dictfile = english, -- english.dict
afffile = english, -- english.affix
stopwords = english -- english.stop (should exist in default installation)
);
-- create new configuation using the default as a template
create text search configuration public.english ( copy = pg_catalog.english );
-- show current configuration
\dF+ public.english
-- alter appropriate mappings to use new dictionary
alter text search configuration public.english
alter mapping for asciiword, asciihword, hword_asciipart, word, hword, hword_part
with english_ispell, english_stem;
-- show changed configuration
\dF+ public.english
-- test that the new configuation works
select * from ts_debug(
'public.english',
'PostgreSQL, the highly scalable, SQL compliant, open source object-relational database management system, is now undergoing beta testing of the next version of our software.'
);
-- make database use new config
alter database <name> set default_text_search_config to 'public.english';
-- make session use new config
set default_text_search_config to 'public.english';
-- test that the new config is used by default
select * from ts_debug(
'PostgreSQL, the highly scalable, SQL compliant, open source object-relational database management system, is now undergoing beta testing of the next version of our software.'
);
此示例使用加拿大英语词典,但您也可以与其他人一起尝试。
这些是 Windows 所需的步骤:
在 PgAdmin 中,运行以下 SQL:
您将需要创建一个新的文本搜索配置来使用字典。
我编写了以下脚本来在运行 PostgreSQL 9.4 的 Ubuntu 14.04 上安装 en_us 字典。对于大多数情况,它应该很容易修改。
下载并安装必要的文件:
英语.sh
然后创建字典和配置:
英语.sql
这在 PostgreSQL 手册的ISpell Dictionaries下有详细介绍。
本质上,您只需
CREATE TEXT SEARCH DICTIONARY (...)
使用字典文件名、停用词列表等即可。