
# CREATE TEXT SEARCH CONFIGURATION
#### 功能描述
创建新的文本搜索配置。
文本搜索配置通过文本搜索解析器（PARSER）将原始字符串解析为标记，再使用词典（DICTIONARY）决定哪些标记是搜索感兴趣的，从而满足搜索需求，提升全文搜索效率。
#### 注意事项
- 如果仅指定了解析器，则新的文本搜索配置初始没有从标记类型到词典的映射， 因此会忽略所有的单词。后面必须使用ALTER TEXT SEARCH CONFIGURATION命令创建映射使配置生效。如果指定了COPY选项，则会自动拷贝指定的文本搜索配置的解析器、映射、配置选项等信息。
- 如果指定了模式名称，则会在指定模式中创建文本搜索配置，否则会在当前模式中创建。
- 定义文本搜索配置的用户为其所有者。
- PARSER和COPY选项是互斥的，因为复制现有配置时，其解析器配置也会被复制。
 
#### 语法格式
```
CREATE TEXT SEARCH CONFIGURATION name 
    ( PARSER = parser_name | COPY = source_config )
    [ WITH ( {configuration_option = value} [, ...] )];
```
#### 参数说明
表1CREATE TEXT SEARCH CONFIGURATION参数说明 
| 参数                   | 描述                                                                | 取值范围                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| name                 | 要创建的文本搜索配置的名称，可以用模式修饰。                                            | 字符串，需符合[标识符命名规范](https://support.huaweicloud.com/sqlreference-dws/dws_06_0007.html#ZH-CN_TOPIC_0000001811634529__section1475018612353)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| parser_name          | 用于该配置的文本搜索解析器的名称。                                                 | 目前支持default、ngram、zhparser三种类型的解析器。 - default，默认解析器，可参考[解析器](https://support.huaweicloud.com/sqlreference-dws/dws_06_0101.html)。  - ngram，基于n-gram分词算法，将文本按固定长度的字符或单词分割为标记。适用于灵活的分词粒度（如短文本、模糊搜索）或多语言或非结构化文本搜索（如日志分析、短文本匹配）的场景。  - zhparser，基于词典的语义分词方法，将中文文本按语义或语言规则拆分为标记。底层调用SCWS（简易中文分词系统）分词算法，适用于有语义的中文分词场景。   |
| source_config        | 要复制的现有文本搜索配置的名称。                                                  | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| configuration_option | 文本搜索配置的配置参数。为指定解析器（parser_name解析器或source_config隐含解析器）配置参数，优化分词逻辑。 | - default解析器无自定义配置参数configuration_option。  - ngram和zhparser解析器对应的配置参数参考[表2]。                                                                                                                                                                                                                                                                                                                    |
   
 表2ngram、zhparser类型解析器对应的配置参数 
| 解析器      | 配置参数               | 参数描述                             | 取值范围                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| ngram    | gram_size          | 分词长度。                            | 正整数，1\~4。 默认值：2。                                                                                                                                                                                                                                                                                                                      |
| ngram    | punctuation_ignore | 是否忽略标点符号。                        | - true（默认值）：忽略标点符号。  - false：不忽略标点符号。                         |
| ngram    | grapsymbol_ignore  | 是否忽略图形化字符。                       | - true：忽略图形化字符。  - false（默认值）：不忽略图形化字符。                       |
| zhparser | punctuation_ignore | 分词结果是否忽略所有的标点等特殊符号（不会忽略\\r和\\n）。 | - true（默认值）：忽略所有的标点等特殊符号。  - false：不忽略所有的标点等特殊符号。             |
| zhparser | seg_with_duality   | 是否将闲散文字自动以二字分词法聚合。               | - true：将闲散文字自动以二字分词法聚合。  - false（默认值）：不将闲散文字自动以二字分词法聚合。       |
| zhparser | multi_short        | 分词执行时是否执行针对长词复合切分。               | - true（默认值）：执行针对长词复合切分。  - false：不执行针对长词复合切分。                 |
| zhparser | multi_duality      | 设定是否将长词内的文字自动以二字分词法聚合。           | - true：将长词内的文字自动以二字分词法聚合。  - false（默认值）：不将长词内的文字自动以二字分词法聚合。   |
| zhparser | multi_zmain        | 是否将重要单字单独显示。                     | - true：将重要单字单独显示。  - false（默认值）：不将重要单字单独显示。                   |
| zhparser | multi_zall         | 是否将全部单字单独显示。                     | - true：将全部单字单独显示。  - false（默认值）：不将全部单字单独显示。                   |
   
#### 示例
创建名为ngram1的文本搜索配置，使用ngram解析器，分词长度为两个字符，保留文本中的图形化字符。
```
DROP TEXT SEARCH CONFIGURATION IF EXISTS  ngram1;
CREATE TEXT SEARCH CONFIGURATION ngram1 (parser=ngram) WITH (gram_size = 2, grapsymbol_ignore = false);
```
创建名为ngram2的文本搜索配置，复制现有配置ngram1的所有参数。
```
DROP TEXT SEARCH CONFIGURATION IF EXISTS  ngram2;
CREATE TEXT SEARCH CONFIGURATION ngram2 (copy=ngram1);
```
创建名为english_1的文本搜索配置，使用默认的文本解析器（parser为default）。
```
DROP TEXT SEARCH CONFIGURATION IF EXISTS english_1;
CREATE TEXT SEARCH CONFIGURATION english_1 (parser=default);
```
#### 相关链接
[ALTER TEXT SEARCH CONFIGURATION](https://support.huaweicloud.com/sqlreference-dws/dws_06_0145.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)
