更新时间:2025-07-10 GMT+08:00
分享

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选项指定的字串类型映射在文本搜索配置中不存在时,数据库会报错。

参数说明

表1 ALTER TEXT SEARCH CONFIGURATION参数说明

参数

描述

取值范围

name

需要修改的文本搜索配置的名称,可以用模式修饰。

-

token_type

与配置的语法解析器关联的字串类型的名称。

详细信息参见解析器

dictionary_name

文本搜索字典名称。 如果有多个字典,则它们会按指定的顺序搜索。

-

old_dictionary

映射中要替换的文本搜索字典名称。

-

new_dictionary

替换old_dictionary的文本搜索字典的名称。

-

new_owner

文本搜索配置的新所有者。

有效的用户名。

new_name

文本搜索配置的新名称。

字符串,需符合标识符命名规范

new_schema

文本搜索配置的新模式名。

有效的模式名。

configuration_option

文本搜索配置项。

详细信息参见ALTER TEXT SEARCH CONFIGURATION

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;

相关文档