
# ALTER TEXT SEARCH CONFIGURATION
#### 功能描述
修改文本搜索配置的定义。
用户可以将映射从标记类型调整为字典，更改配置的名称或者所有者，或者修改搜索配置的配置参数。
#### 注意事项
- 当一个搜索配置已经被引用（如被用来创建索引），则不允许用户修改此文本搜索配置。
- 要使用ALTER TEXT SEARCH CONFIGURATION，用户必须是配置的所有者。
 
#### 语法格式
- 增加文本搜索配置标记类型映射。
  ```
  ALTER TEXT SEARCH CONFIGURATION name 
      ADD MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ];
  ```
  

- 修改文本搜索配置中指定标记类型的字典。
  ```
  ALTER TEXT SEARCH CONFIGURATION name 
      ALTER MAPPING FOR token_type [, ... ] REPLACE old_dictionary WITH new_dictionary;
  ```
  

- 修改文本搜索配置标记类型。
  ```
  ALTER TEXT SEARCH CONFIGURATION name
      ALTER MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ];
  ```
  

- 修改文本搜索配置字典。
  ```
  ALTER TEXT SEARCH CONFIGURATION name
      ALTER MAPPING REPLACE old_dictionary WITH new_dictionary;
  ```
  

- 删除文本搜索配置标记类型映射。
  ```
  ALTER TEXT SEARCH CONFIGURATION name
      DROP MAPPING [ IF EXISTS ] FOR token_type [, ... ];
  ```
  

- 重命名文本搜索配置所有者。
  ```
  ALTER TEXT SEARCH CONFIGURATION name OWNER TO new_owner;
  ```
  

- 重命名文本搜索配置名称。
  ```
  ALTER TEXT SEARCH CONFIGURATION name RENAME TO new_name;
  ```
  

- 重命名文本搜索配置命名空间。
  ```
  ALTER TEXT SEARCH CONFIGURATION name SET SCHEMA new_schema;
  ```
  

- 修改文本搜索配置属性。
  ```
  ALTER TEXT SEARCH CONFIGURATION name SET ( { configuration_option = value } [, ...] );
  ```
  

- 重置文本搜索配置属性。
  ```
  ALTER TEXT SEARCH CONFIGURATION name RESET ( {configuration_option} [, ...] );
  ```
  
![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
- 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选项指定的标记类型映射在文本搜索配置中不存在时，数据库会报错。
 
#### 参数说明
表1ALTER TEXT SEARCH CONFIGURATION参数说明 
| 参数                   | 描述                              | 取值范围                                                                                                                                    |
|:---|:---|:---|
| name                 | 需要修改的文本搜索配置的名称，可以用模式修饰。         | -                                                                                                                                       |
| token_type           | 与配置的语法解析器关联的标记类型的名称。            | 详细信息参见[解析器](https://support.huaweicloud.com/sqlreference-dws/dws_06_0101.html)。                                                         |
| dictionary_name      | 文本搜索字典名称。 如果有多个字典，则它们会按指定的顺序搜索。 | -                                                                                                                                       |
| old_dictionary       | 映射中要替换的文本搜索字典名称。                | -                                                                                                                                       |
| new_dictionary       | 替换old_dictionary的文本搜索字典的名称。     | -                                                                                                                                       |
| new_owner            | 文本搜索配置的新所有者。                    | 有效的用户名。                                                                                                                                 |
| new_name             | 文本搜索配置的新名称。                     | 字符串，需符合[标识符命名规范](https://support.huaweicloud.com/sqlreference-dws/dws_06_0007.html#ZH-CN_TOPIC_0000001811634529__section1475018612353)。 |
| new_schema           | 文本搜索配置的新模式名。                    | 有效的模式名。                                                                                                                                 |
| configuration_option | 文本搜索配置项。                        | 详细信息参见[CREATE TEXT SEARCH CONFIGURATION](https://support.huaweicloud.com/sqlreference-dws/dws_06_0182.html)。                            |
| value                | 文本搜索配置项的值。                      | -                                                                                                                                       |
   
#### 示例
创建文本搜索配置ngram1。
```
DROP TEXT SEARCH CONFIGURATION IF EXISTS ngram1;
CREATE TEXT SEARCH CONFIGURATION ngram1 (parser=ngram) WITH (gram_size = 2, grapsymbol_ignore = false);
```
给文本搜索类型ngram1添加类型映射。
```
ALTER TEXT SEARCH CONFIGURATION ngram1 ADD MAPPING FOR multisymbol WITH simple;
```
修改文本搜索配置的所有者。
```
CREATE USER joe password '{Password}';
ALTER TEXT SEARCH CONFIGURATION ngram1 OWNER TO joe;
```
修改文本搜索配置的schema。
```
ALTER TEXT SEARCH CONFIGURATION ngram1 SET SCHEMA joe;
```
重命名文本搜索配置。
```
ALTER TEXT SEARCH CONFIGURATION joe.ngram1 RENAME TO ngram_1;
```
删除类型映射。
```
ALTER TEXT SEARCH CONFIGURATION joe.ngram_1 DROP MAPPING IF EXISTS FOR multisymbol;
```
创建文本搜索配置english_1。
```
DROP TEXT SEARCH CONFIGURATION IF EXISTS english_1;
CREATE TEXT SEARCH CONFIGURATION english_1 (parser=default);
```
增加文本搜索配置标记类型映射。
```
ALTER TEXT SEARCH CONFIGURATION english_1 ADD MAPPING FOR word WITH simple,english_stem;
```
增加文本搜索配置标记类型映射。
```
ALTER TEXT SEARCH CONFIGURATION english_1 ADD MAPPING FOR email WITH english_stem, french_stem;
```
修改文本搜索配置标记类型映射。
```
ALTER TEXT SEARCH CONFIGURATION english_1 ALTER MAPPING REPLACE french_stem with german_stem;
```
查询文本搜索配置相关信息。
```
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;
```
![](https://support.huaweicloud.com/sqlreference-dws/figure/zh-cn_image_0000002627037910.png "点击放大")
#### 相关链接
[CREATE TEXT SEARCH CONFIGURATION](https://support.huaweicloud.com/sqlreference-dws/dws_06_0182.html)，[DROP TEXT SEARCH CONFIGURATION](https://support.huaweicloud.com/sqlreference-dws/dws_06_0210.html)，[全文检索](https://support.huaweicloud.com/sqlreference-dws/dws_06_0081.html)
#### 查看数据库中的文本搜索配置信息
DWS提供以下系统表用于查看当前数据库中的文本搜索配置信息：
- [PG_TS_CONFIG](https://support.huaweicloud.com/devg-dws/dws_04_0624.html)系统表记录当前数据库中创建的文本搜索配置信息，包括文本搜索配置的名称、所有者及配置选项等。
- [PG_TS_CONFIG_MAP](https://support.huaweicloud.com/devg-dws/dws_04_0625.html)系统表记录文本搜索配置的解析器输出的符号类型，关联的文本搜索字典及搜索顺序。
 
