计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

CREATE TEXT SEARCH DICTIONARY

更新时间:2024-12-30 GMT+08:00

功能描述

创建一个新的全文检索词典。词典是一种指定在全文检索时识别特定词并处理的方法。

词典的创建依赖于预定义模板(在系统表PG_TS_TEMPLATE中定义),支持创建五种类型的词典,分别是Simple、Ispell、Synonym、Thesaurus、以及Snowball,每种类型的词典可以完成不同的任务。

注意事项

  • 具有SYSADMIN权限的用户可以执行创建词典操作,创建该词典的用户自动成为其所有者。
  • 临时模式(pg_temp)下不允许创建词典。
  • 创建或修改词典之后,任何对于用户自定义的词典定义文件的修改,将不会影响到数据库中的词典。如果需要在数据库中使用这些修改,需使用ALTER语句更新对应词典的定义文件。

语法格式

1
2
3
4
CREATE TEXT SEARCH DICTIONARY name (
    TEMPLATE = template
    [, option = value [, ... ]]
);

参数说明

  • name

    要创建的词典的名称(可指定模式名,否则在当前模式下创建)。

    取值范围:符合标识符命名规范的字符串,且最大长度不超过63个字符。

  • template

    模板名。

    取值范围:系统表PG_TS_TEMPLATE中定义的模板:Simple/Synonym/Thesaurus/Ispell/Snowball。

  • option

    参数名。与template值对应,不同的词典模板具有不同的参数列表,且与指定顺序无关。

    • Simple词典对应的option
      • STOPWORDS

        停用词表文件名,默认后缀名为stop。例如STOPWORDS = french,则实际文件名为french.stop。停用词文件格式为一组word列表,每行定义一个停用词。词典处理时,文件中的空行和空格会被忽略,并将stopword词组转换为小写形式。

      • ACCEPT

        是否将非停用词设置为已识别。默认值为true。

        当Simple词典设置参数ACCEPT=true时,将不会传递任何token给后继词典,此时建议将其放置在词典列表的最后。反之,当ACCEPT=false时,建议将该Simple词典放置在列表中的至少一个词典之前。

      • FILEPATH

        停用词文件所在目录。停用词文件可以存放于本地,也可以存放于对象存储服务OBS服务器。如果存在本地,目录格式为'file://absolute_path'。如果存放于OBS服务器,目录格式为'obs://bucket/path accesskey=ak secretkey=sk region=region_name'。注意目录要用单引号包含。默认值为预定义词典文件所在目录。FILEPATH参数必须和STOPWORDS参数同时指定,不允许单独指定。

        使用OBS服务器上的停用词文件创建字典的过程如下:

        1. 将停用词文件上传到OBS服务器。例如将french.stop文件上传到OBS服务器obsv3.sa-fb-1.externaldemo.com上名为gaussdb的桶中,其URL为https://gaussdb.obsv3.sa-fb-1.externaldemo.com/french.stop。上传文件及查询URL的方式请参考OBS用户手册。
        2. 修改$GAUSSHOME/etc/region_map文件,在其中加入一行"region_name": "obs domain"。region_name可以为任意由大小写字母、数字、斜杠(/)或下划线组成的字符串。obs domain为OBS服务器的域名。

          示例,将region_name设为rg,region_map包含的内容如:"rg": "obsv3.sa-fb-1.externaldemo.com"。

          须知:

          region_name和obs domain都用双引号,冒号的左边没有空格,右边有1个空格。

        3. 执行CREATE TEXT SEARCH DICTIONARY命令创建字典。命令如下:
        1
        CREATE TEXT SEARCH DICTIONARY french_dict ( TEMPLATE = pg_catalog.simple, STOPWORDS = french, FILEPATH = 'obs://gaussdb accesskey=xxx secretkey=yyy region=rg' );
        

        由于french.stop文件放在gaussdb桶的根目录下,因此path为空。

    • Synonym词典对应的option
      • SYNONYM

        同义词词典的定义文件名,默认后缀名为syn。

        文件格式为一组同义词列表,每行格式为"token synonym",即token和其对应的synonym,中间以空格相连。

      • CASESENSITIVE

        设置是否大小写敏感,默认值为false,此时词典文件中的token和synonym均会转为小写形式处理。如果设置为true,则不会进行小写转换。

      • FILEPATH

        同义词词典文件所在目录。目录可以指定为本地目录和OBS目录两种形式。默认值为预定义词典文件所在目录。其中目录格式、以及使用OBS服务器上的文件创建Synonym字典的过程与Simple词典的FILEPATH相同。

    • Thesaurus词典对应的option
      • DICTFILE

        词典定义文件名,默认后缀名为ths。

        文件格式为一组同义词列表,每行格式为"sample words : indexed words",中间冒号(:)作为短语和其替换词间的分隔符。TZ词典处理时,如果有多个匹配的sample words,将选择最长匹配输出。

      • DICTIONARY

        用于词规范化的子词典名,必须且仅能定义一个。该词典必须是已经存在的,在检查短语匹配之前使用,用于识别和规范输入文本。

        如果子词典无法识别输入词,将会报错。此时,需要移除该词或者更新子词典使其识别。此外,可在indexed words的开头放上一个星号(*)来跳过在其上应用子词典,但是所有sample words必须可以被子词典识别。

        如果词典文件定义的sample words中,含有子词典中定义的停用词,需要用问号(?)替代停用词。假设a和the是子词典中所定义的停用词,如下:
        ? one ? two : swsw

        上述同义词组定义会匹配"a one the two"以及"the one a two",这两个短语均会被swsw替代输出。

      • FILEPATH

        词典定义文件所在目录。目录可以指定为本地目录和OBS目录两种形式。默认值为预定义词典文件所在目录。其中目录格式、以及使用OBS服务器上的文件创建Synonym字典的过程与Simple词典的FILEPATH相同。

    • Ispell词典
      • DICTFILE

        词典定义文件名,默认后缀名为dict。

      • AFFFILE

        词缀文件名,默认后缀名为affix。

      • STOPWORDS

        停用词文件名,默认后缀名为stop,文件格式要求与Simple类型词典的停用词文件相同。

      • FILEPATH

        词典文件所在目录。可以指定为本地目录和OBS目录两种形式。默认值为预定义词典文件所在目录。其中目录格式、以及使用OBS服务器上的文件创建Synonym字典的过程与Simple词典的FILEPATH相同。

    • Snowball词典
      • LANGUAGE

        语言名,标识使用哪种语言的词干分析算法。算法按照对应语言中的拼写规则,缩减输入词的常见变体形式为一个基础词或词干。

      • STOPWORDS

        停用词表文件名,默认后缀名为stop,文件格式要求与Simple类型词典的停用词文件相同。

      • FILEPATH

        词典定义文件所在目录。可以指定为本地目录或者OBS目录。默认值为预定义词典文件所在目录。FILEPATH参数必须和STOPWORDS参数同时指定,不允许单独指定。其中目录格式、以及用OBS服务器上的文件创建Snowball字典的过程与Simple字典相同。

    说明:
    • 预定义词典文件位于$GAUSSHOME/share/postgresql/tsearch_data目录下。
    • 词典定义文件的文件名仅支持小写字母、数字、下划线混合。
  • value

    参数值。如果不是简单的标识符或数字,则参数值必须加单引号(标识符和数字同样可以加上单引号)。

示例

创建一个Ispell词典english_ispell(词典定义文件来自开源词典):
1
2
3
4
5
6
7
CREATE TEXT SEARCH DICTIONARY english_ispell (
    TEMPLATE = ispell,
    DictFile = english,
    AffFile = english,
    StopWords = english,
    FilePath = 'obs://bucket_name/path accesskey=ak secretkey=sk region=rg' 
);

请参见配置示例一节的示例。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容