检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
限制约束 GaussDB(DWS)的全文检索功能当前限制约束是: 每个分词长度必须小于2K字节。 tsvector结构(分词+位置)的长度必须小于1兆字节。 tsvector的位置值必须大于0,小于等于16,383。 每个分词在文档中位置数必须小于256,若超过将舍弃后面的位置信息。
由于TZ词典需要识别短语,所以在处理过程中必须保存当前状态并与解析器进行交互,以决定是否处理下一个token或是结束当前识别。此外,TZ词典配置时需谨慎,如果设置TZ词典仅处理asciiword类型的token,则类似one 7的分类词典定义将不会生效,因为uint类型的token不会传给TZ词典处理。
搜索表 在不使用索引的情况下也可以进行全文检索。 一个简单查询:将body字段中包含science的每一行打印出来。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
基本文本匹配 GaussDB(DWS)的全文检索基于匹配算子@@,当一个tsvector(document)匹配到一个tsquery(query)时,则返回true。其中,tsvector(document)和tsquery(query)两种数据类型可以任意排序。 1 2 3 4
查询重写 ts_rewrite函数可以从tsquery中搜索一个特定的目标子查询,并在该子查询每次出现的地方都替换为另一个子查询。 实际上这只是通过字串替换而得到的一个特定tsquery版本。目标子查询和替换查询组合起来可以被认为是一个重写规则。一组类似的重写规则可以为搜索提供强
Ispell词典 Ispell词典模板支持词法词典,它可以把一个词的各种语言学形式规范化成相同的词位。比如,一个Ispell英语词典可以匹配搜索词bank的词尾变化和词形变化,如banking、banked、banks、banks'和bank's等。 GaussDB(DWS)不提
另外一种可能是:文档在文件系统中作为简单的文本文件存储。在这种情况下,数据库可以用于存储全文索引并且执行搜索,同时可以使用一些唯一标识从文件系统中检索文档。然而,从数据库外部检索文件需要拥有系统管理员权限或者特殊函数支持。因此,还是将所有数据保存在数据库中比较方便。同时,将所有数据保存在数据库中可以方便地访问文档元数据以便于索引和显示。
integer:词素在文档(tsvector)中的编号。 nentry integer:词素出现的频率。 如果设置了权重条件,只有标记了对应权重的词素才会统计频率。例如,在一个文档集中检索使用频率最高的十个单词: 1 2 3 4 5 6 7 8 9 10 11 12 13
punctuation not otherwise recognized) 注意:对于解析器来说,一个“字母”的概念是由数据库的语言区域设置,即lc_ctype设置决定的。只包含基本ASCII字母的词被报告为一个单独的token类型,因为这类词有时需要被区分出来。大多数欧洲语言中,对tok
节定义了数据仓库服务上报云监控服务的监控指标的命名空间、监控指标列表和维度定义。用户可以通过云监控服务提供的管理控制台或API接口来检索数据仓库服务产生的监控指标和告警信息。 命名空间 SYS.DWS 集群监控指标 通过云监控提供的数据仓库服务相关监控指标,用户可以获取有关集群运
停用词 停用词是很常见的词,几乎出现在每一个文档中,并且没有区分值。因此,在全文搜索的语境下可忽视它们。停用词处理逻辑和词典类型相关。其中,Ispell词典会先对标记进行规范化,然后再查看停用词表,而Snowball词典会最先检查输入标记是否为停用词。 例如,每个英文文本包含像a
基本文本匹配 GaussDB(DWS)的全文检索基于匹配算子@@,当一个tsvector(document)匹配到一个tsquery(query)时,则返回true。其中,tsvector(document)和tsquery(query)两种数据类型可以任意排序。 1 2 3 4
该例子的关键点是表table1的同一个列c_text上建立了两个gin索引:idx1和idx2,但这两个索引是在不同default_text_search_config的设置下建立的。该例子和同一张表的同一个列上建立普通索引的不同之处在于: gin索引使用了不同的parser(即分隔符不同),那么idx1和idx2的索引数据是不同的;
搜索表 本章节主要介绍如何使用文本搜索运算符搜索数据库表。 一个简单查询:将body字段中包含science的每一行打印出来。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
不同部分使用不同配置进行解析。因为setweight函数会对给定的tsvector中的语素进行统一设置,如果想要对文档的不同部分设置不同的权重,需要在连接之前对文本进行解析和权重设置。 setweight(vector tsvector, weight "char") returns
测试和调试文本搜索 分词器测试 解析器测试 词典测试 父主题: 全文检索
在数据库表中搜索文本 搜索表 创建GIN索引 索引使用约束 父主题: 全文检索
解析查询 GaussDB(DWS)提供了函数to_tsquery和plainto_tsquery将查询转换为tsquery数据类型,to_tsquery提供比plainto_tsquery更多的功能,但对其输入要求更严格。 to_tsquery to_tsquery将查询转换为tsquery数据类型。
查询重写 ts_rewrite函数族可以从tsquery中搜索一个特定的目标子查询,并在该子查询每次出现的地方都替换为另一个子查询。 实际上这只是通过字串替换而得到的一个特定tsquery版本。目标子查询和替换查询组合起来可以被认为是一个重写规则。一组类似的重写规则可以为搜索提供
integer:词素在文档(tsvector)中的编号。 nentry integer:词素出现的频率。 如果设置了权重条件,只有标记了对应权重的词素才会统计频率。例如,在一个文档集中检索使用频率最高的十个单词: 1 2 3 4 5 6 7 8 9 10 11 12 13