ALTER TEXT SEARCH CONFIGURATION
功能描述
修改文本搜索配置的定义。
用户可以将映射从字串类型调整为字典,更改配置的名称或者所有者,或者修改搜索配置的配置参数。
注意事项
- 当一个搜索配置已经被引用(如被用来创建索引),则不允许用户修改此文本搜索配置。
- 要使用ALTER TEXT SEARCH CONFIGURATION,用户必须是配置的所有者。
语法格式
- 增加文本搜索配置字串类型映射。
1 2
ALTER TEXT SEARCH CONFIGURATION name ADD MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ];
- 修改文本搜索配置字典。
1 2
ALTER TEXT SEARCH CONFIGURATION name ALTER MAPPING FOR token_type [, ... ] REPLACE old_dictionary WITH new_dictionary;
- 修改文本搜索配置字串类型。
1 2
ALTER TEXT SEARCH CONFIGURATION name ALTER MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ];
- 更改文本搜索配置字典。
1 2
ALTER TEXT SEARCH CONFIGURATION name ALTER MAPPING REPLACE old_dictionary WITH new_dictionary;
- 删除文本搜索配置字串类型映射。
1 2
ALTER TEXT SEARCH CONFIGURATION name DROP MAPPING [ IF EXISTS ] FOR token_type [, ... ];
- 重命名文本搜索配置所有者。
1
ALTER TEXT SEARCH CONFIGURATION name OWNER TO new_owner;
- 重命名文本搜索配置名称。
1
ALTER TEXT SEARCH CONFIGURATION name RENAME TO new_name;
- 重命名文本搜索配置命名空间。
1
ALTER TEXT SEARCH CONFIGURATION name SET SCHEMA new_schema;
- 修改文本搜索配置属性。
1
ALTER TEXT SEARCH CONFIGURATION name SET ( { configuration_option = value } [, ...] );
- 重置文本搜索配置属性。
1
ALTER TEXT SEARCH CONFIGURATION name RESET ( {configuration_option} [, ...] );

- ADD MAPPING FOR选项为文本搜索配置增加字串类型映射;如果ADD MAPPING FOR后面任何一个字串类型的映射已经存在于此文本搜索配置中,那么系统将会报错。
- ALTER MAPPING FOR选项会首先清除已有的字串类型映射,然后添加指定的字串类型映射。
- ALTER MAPPING REPLACE ... WITH ... 与ALTER MAPPING FOR ... REPLACE ... WITH ...选项会直接使用new_dictionary替换old_dictionary。需要注意的是,只有pg_ts_config_map系统表中存在maptokentype与old_dictionary对应关系的元组时,才能更新成功,否则不会成功,也不会有任何提示信息返回。
- DROP MAPPING FOR选项会删除当前文本搜索配置中指定的字串类型映射。 如果没有指定IF EXISTS选项,当DROP MAPPING FOR选项指定的字串类型映射在文本搜索配置中不存在时,数据库会报错。
参数说明
参数 |
描述 |
取值范围 |
---|---|---|
name |
需要修改的文本搜索配置的名称,可以用模式修饰。 |
- |
token_type |
与配置的语法解析器关联的字串类型的名称。 |
详细信息参见解析器。 |
dictionary_name |
文本搜索字典名称。 如果有多个字典,则它们会按指定的顺序搜索。 |
- |
old_dictionary |
映射中要替换的文本搜索字典名称。 |
- |
new_dictionary |
替换old_dictionary的文本搜索字典的名称。 |
- |
new_owner |
文本搜索配置的新所有者。 |
有效的用户名。 |
new_name |
文本搜索配置的新名称。 |
字符串,需符合标识符命名规范。 |
new_schema |
文本搜索配置的新模式名。 |
有效的模式名。 |
configuration_option |
文本搜索配置项。 |
|
value |
文本搜索配置项的值。 |
- |
示例
创建文本搜索配置ngram1。
1 2 |
DROP TEXT SEARCH CONFIGURATION IF EXISTS ngram1; CREATE TEXT SEARCH CONFIGURATION ngram1 (parser=ngram) WITH (gram_size = 2, grapsymbol_ignore = false); |
给文本搜索类型ngram1添加类型映射。
1
|
ALTER TEXT SEARCH CONFIGURATION ngram1 ADD MAPPING FOR multisymbol WITH simple; |
修改文本搜索配置的所有者。
1 2 |
CREATE USER joe password '{Password}'; ALTER TEXT SEARCH CONFIGURATION ngram1 OWNER TO joe; |
修改文本搜索配置的schema。
1
|
ALTER TEXT SEARCH CONFIGURATION ngram1 SET SCHEMA joe; |
重命名文本搜索配置。
1
|
ALTER TEXT SEARCH CONFIGURATION joe.ngram1 RENAME TO ngram_1; |
删除类型映射:
1
|
ALTER TEXT SEARCH CONFIGURATION joe.ngram_1 DROP MAPPING IF EXISTS FOR multisymbol; |
创建文本搜索配置:
1 2 |
DROP TEXT SEARCH CONFIGURATION IF EXISTS english_1; CREATE TEXT SEARCH CONFIGURATION english_1 (parser=default); |
增加文本搜索配置字串类型映射。
1
|
ALTER TEXT SEARCH CONFIGURATION english_1 ADD MAPPING FOR word WITH simple,english_stem; |
增加文本搜索配置字串类型映射。
1
|
ALTER TEXT SEARCH CONFIGURATION english_1 ADD MAPPING FOR email WITH english_stem, french_stem; |
修改文本搜索配置字串类型映射。
1
|
ALTER TEXT SEARCH CONFIGURATION english_1 ALTER MAPPING REPLACE french_stem with german_stem; |
查询文本搜索配置相关信息。
1
|
SELECT b.cfgname,a.maptokentype,a.mapseqno,a.mapdict,c.dictname FROM pg_ts_config_map a,pg_ts_config b, pg_ts_dict c WHERE a.mapcfg=b.oid AND a.mapdict=c.oid AND b.cfgname='english_1' ORDER BY 1,2,3,4,5; |