更新时间:2026-07-02 GMT+08:00

CREATE TEXT SEARCH CONFIGURATION

功能描述

创建新的文本搜索配置。

文本搜索配置通过文本搜索解析器(PARSER)将原始字符串解析为标记,再使用词典(DICTIONARY)决定哪些标记是搜索感兴趣的,从而满足搜索需求,提升全文搜索效率。

注意事项

  • 如果仅指定了解析器,则新的文本搜索配置初始没有从标记类型到词典的映射, 因此会忽略所有的单词。后面必须使用ALTER TEXT SEARCH CONFIGURATION命令创建映射使配置生效。如果指定了COPY选项,则会自动拷贝指定的文本搜索配置的解析器、映射、配置选项等信息。
  • 如果指定了模式名称,则会在指定模式中创建文本搜索配置,否则会在当前模式中创建。
  • 定义文本搜索配置的用户为其所有者。
  • PARSER和COPY选项是互斥的,因为复制现有配置时,其解析器配置也会被复制。

语法格式

1
2
3
CREATE TEXT SEARCH CONFIGURATION name 
    ( PARSER = parser_name | COPY = source_config )
    [ WITH ( {configuration_option = value} [, ...] )];

参数说明

表1 CREATE TEXT SEARCH CONFIGURATION参数说明

参数

描述

取值范围

name

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

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

parser_name

用于该配置的文本搜索解析器的名称。

目前支持default、ngram、zhparser三种类型的解析器。

  • default,默认解析器,可参考解析器
  • ngram,基于n-gram分词算法,将文本按固定长度的字符或单词分割为标记。适用于灵活的分词粒度(如短文本、模糊搜索)或多语言或非结构化文本搜索(如日志分析、短文本匹配)的场景。
  • zhparser,基于词典的语义分词方法,将中文文本按语义或语言规则拆分为标记。底层调用SCWS(简易中文分词系统)分词算法,适用于有语义的中文分词场景。

source_config

要复制的现有文本搜索配置的名称。

-

configuration_option

文本搜索配置的配置参数。为指定解析器(parser_name解析器或source_config隐含解析器)配置参数,优化分词逻辑。

  • default解析器无自定义配置参数configuration_option。
  • ngram和zhparser解析器对应的配置参数参考表2
表2 ngram、zhparser类型解析器对应的配置参数

解析器

配置参数

参数描述

取值范围

ngram

gram_size

分词长度。

正整数,1~4。

默认值:2。

punctuation_ignore

是否忽略标点符号。

  • true(默认值):忽略标点符号。
  • false:不忽略标点符号。

grapsymbol_ignore

是否忽略图形化字符。

  • true:忽略图形化字符。
  • false(默认值):不忽略图形化字符。

zhparser

punctuation_ignore

分词结果是否忽略所有的标点等特殊符号(不会忽略\r和\n)。

  • true(默认值):忽略所有的标点等特殊符号。
  • false:不忽略所有的标点等特殊符号。

seg_with_duality

是否将闲散文字自动以二字分词法聚合。

  • true:将闲散文字自动以二字分词法聚合。
  • false(默认值):不将闲散文字自动以二字分词法聚合。

multi_short

分词执行时是否执行针对长词复合切分。

  • true(默认值):执行针对长词复合切分。
  • false:不执行针对长词复合切分。

multi_duality

设定是否将长词内的文字自动以二字分词法聚合。

  • true:将长词内的文字自动以二字分词法聚合。
  • false(默认值):不将长词内的文字自动以二字分词法聚合。

multi_zmain

是否将重要单字单独显示。

  • true:将重要单字单独显示。
  • false(默认值):不将重要单字单独显示。

multi_zall

是否将全部单字单独显示。

  • true:将全部单字单独显示。
  • false(默认值):不将全部单字单独显示。

示例

创建名为ngram1的文本搜索配置,使用ngram解析器,分词长度为两个字符,保留文本中的图形化字符。

1
2
DROP TEXT SEARCH CONFIGURATION IF EXISTS  ngram1;
CREATE TEXT SEARCH CONFIGURATION ngram1 (parser=ngram) WITH (gram_size = 2, grapsymbol_ignore = false);

创建名为ngram2的文本搜索配置,复制现有配置ngram1的所有参数。

1
2
DROP TEXT SEARCH CONFIGURATION IF EXISTS  ngram2;
CREATE TEXT SEARCH CONFIGURATION ngram2 (copy=ngram1);

创建名为english_1的文本搜索配置,使用默认的文本解析器(parser为default)。

1
2
DROP TEXT SEARCH CONFIGURATION IF EXISTS english_1;
CREATE TEXT SEARCH CONFIGURATION english_1 (parser=default);