- 博客(90)
- 问答 (7)
- 收藏
- 关注
原创 GBase 8c 函数与操作符——42-全文检索 | 附加功能·解析器
文本搜索解析器负责将原文档文本分解为多个记号,并标识每个记号的类型。这里的类型集由解析器本身定义。注意,解析器并不修改文本,它只是确定合理的单词边界。由于这一限制,人们更需要定制词典,而不是为每个应用程序定制解析器。当前GBase 8c提供了一种内置解析器pg_catalog.default,能识别23中记号类型,如下表所示:注意:对于解析器来说,一个“字母”的概念是由数据库的语言区域设置,即lc_ctype设置决定的。只包含基本ASCII字母的词被报告为一个单独的token类型,因为这类词有时需要被
2022-03-28 20:12:36
637
原创 GBase 8c 函数与操作符——41-全文检索 | 附加功能·用于自动更新的触发器和收集文档统计数据
1、用于自动更新的触发器当用一个单独的列存储tsvector类型时,需要创建一个触发器在该列内容变更时更新tsvector列。GBase 8c提供两个内建的触发器函数用于更新,同时也支持自定义触发器函数。tsvector_update_trigger(tsvector_column_name, config_name, text_column_name [, ... ])tsvector_update_trigger_column(tsvector_column_name, config_column
2022-03-28 20:09:19
602
原创 GBase 8c 函数与操作符——40-全文检索 | 附加功能·查询重写
ts_rewrite函数族可以从tsquery中搜索一个特定的目标子查询,并在该子查询每次出现的地方都替换为另一个子查询。实际上这只是通过字串替换而得到的一个特定tsquery版本。目标子查询和替换查询组合起来可以被认为是一个重写规则。一组类似的重写规则可以为搜索提供强大的帮助。例如,可以使用同义词扩大搜索范围(例如,new york, big apple, nyc, gotham)或限制搜索范围在用户直接感兴趣的热点话题上。ts_rewrite (query tsquery, target tsqu
2022-03-28 20:05:28
268
原创 GBase 8c 函数与操作符——39-全文检索 | 附加功能·处理查询
GBase 8c提供了函数和操作符用来操作tsquery类型的查询。tsquery && tsquery返回两个给定查询tsquery的与结果。tsquery || tsquery返回两个给定查询tsquery的或结果。!! tsquery返回给定查询tsquery的非结果。tsquery <-> tsquery返回给定查询tsquery的<->结果。例如:gbase=# SELECT to_tsquery('fat') <-&
2022-03-28 20:02:27
228
原创 GBase 8c 函数与操作符——38-全文检索 | 附加功能·处理文档
GBase 8c提供了用来操作tsvector类型的函数和操作符。tsvector || tsvectortsvector连接操作符返回一个新的tsvector类型,它综合了两个tsvector中词素和位置信息,并保留词素的位置信息和权重标签。右侧的tsvector的起始位置位于左侧tsvector的最后位置,因此,新生成的tsvector几乎等同于将两个原始文档字串连接后进行to_tsvector操作。(这个等价是不准确的,因为任何从左边tsvector中删除的停用词都不会影响结果,但是,在使用文
2022-03-28 19:59:24
237
原创 GBase 8c 函数与操作符——37-全文检索 | 控制文本搜索(下)
高亮结果搜索结果的理想显示是:列出每篇文档中与搜索相关的部分,并标识为什么与查询相关。搜索引擎能够显示标识了搜索词的文档片段。GBase 8c提供了函数ts_headline支持这部分功能。ts_headline([ config regconfig, ] document text, query tsquery [, options text ]) returns textts_headline的输入是带有查询条件的文档,其返回文档中的摘录,在摘录中查询词是高亮显示的。用来解析文档的分词器由con
2022-03-28 19:53:18
251
原创 GBase 8c 函数与操作符——36-全文检索 | 控制文本搜索(中)
1、排序搜索结果排序试图针对特定查询衡量文档的相关度,从而将众多的匹配文档中相关度最高的文档排在最前。GBase 8c提供了两个预置的排序函数。函数考虑了词法、距离和结构信息;也就是,他们考虑查询词在文档中出现的频率、紧密程度、以及他们出现的地方在文档中的重要性。然而,相关性的概念是模糊的,并且是跟应用强相关的。不同的应用程序可能需要额外的信息来排序,比如,文档的修改时间,内置的排序函数等。也可以开发自己的排序函数或者采用附加因素组合这些排序函数的结果来满足特定需求。两个预置的排序函数:ts_rank
2022-03-28 19:50:41
279
原创 GBase 8c 函数与操作符——35-全文检索 | 控制文本搜索(上)
1、解析文档PostgreSQL提供了函数to_tsvector将一个文档转换成tsvector数据类型。to_tsvector([ config regconfig, ] document text) returns tsvectorto_tsvector把一个文本文档解析成记号,把记号缩减成词位,并且返回一个tsvector,它列出了词位以及词位在文档中的位置。文档被根据指定的或默认的文本搜索配置来处理。下面是一个简单例子:gbase=# SELECT to_tsvector('english
2022-03-28 19:45:30
792
原创 GBase 8c 函数与操作符——34-全文检索 | 表和索引
1、搜索一个表在没有索引的情况下的全文检索:查询文档中每行title匹配friend:gbase=# SELECT * FROM pgweb; id | body |
2022-03-28 19:39:43
227
原创 GBase 8c 函数与操作符——33-全文检索
1、概述文本搜索(、*、LIKE和ILIKE操作符)在对文本进行搜索操作时,缺少一些系统要求的必要属性:及时是英文环境也没有语义支持;由于要识别派生词并不是那么容易,因此正则表达式也不能满足要求。如,satisfies和satisfy,当使用正则表达式寻找satisfy时,并不会查询到包含satisfies的文档。用户可以使用OR搜索多种派生形式,但过程非常繁琐。并且有些词会有上千的派生词,因此容易出错。没有对搜索结果的分类(排序)。当搜索出成千的文档时,查找效率很低。由于没有索引的支持,每一次
2022-03-28 19:26:22
289
原创 GBase 8c 函数与操作符——32-字符集支持 | 服务器与客户端之间的自动字符集转换
启用自动字符集转换功能,需要告知数据库客户端使用的字符集/编码:用gsql里的\encoding命令。例如,把编码改变为SJIS:\encoding SJISlibpq中提供函数控制客户端编码。使用SET client_encoding TO设置客户端编码:SET CLIENT_ENCODING TO 'value';或者使用SQL的SET NAMES:SET NAMES 'value';查询当前客户端编码:SHOW client_encoding;重置为缺省编码:RE
2022-03-25 20:01:16
2164
原创 GBase 8c 函数与操作符——32-字符集支持 |设置字符集
1、支持的字符集2、设置字符集initdb定义数据库默认字符集/编码,例如:initdb -E GKR可以用–encoding代替-E。如果没有给出-E或者–encoding选项,initdb会尝试基于指定的或者默认的区域判断要使用的合适编码。使用非默认字符集/编码时,应考虑其与所选择的区域兼容:createdb -E EUC_KR -T template0 --lc-collate=ko_KR.euckr --lc-ctype=ko_KR.euckr korean或使用SQL命令实现:
2022-03-25 19:55:38
1059
原创 GBase 8c 函数与操作符——31-类型转换 | UNION、CASE和相关结构
SQL UNION构造必须把那些可能不太相似的类型匹配起来成为一个结果集。解析算法分别应用于联合查询的每个输出字段。INTERSECT和EXCEPT构造对不相同的类型使用和UNION相同的算法进行解析。CASE、ARRAY、VALUES、GREATEST和LEAST构造也使用同样的算法匹配它的部件表达式并且选择一个结果数据类型。UNION,CASE 和相关构造解析:如果所有输入都是相同的类型,并且不是unknown类型,那么解析成这种类型。如果所有输入都是域类型,则所有后续步骤中都将其当做该域的基
2022-03-25 19:50:05
605
原创 GBase 8c 函数与操作符——30-类型转换 | 值存储
查找与目标字段准确的匹配。试着将表达式直接转换成目标类型。如果已知这两种类型之间存在一个已注册的转换函数,那么直接调用该转换函数即可。如果表达式是一个未知类型文本,该文本字符串的内容将交给目标类型的输入转换过程。检查一下看目标类型是否有长度转换。长度转换是一个从某类型到自身的转换。如果在pg_cast表里面找到一个,那么在存储到目标字段之前先在表达式上应用。这样的转换函数总是接受一个额外的类型为integer的参数,它接收目标字段的atttypmod值(实际上是其声明长度,atttypmod的解释随不.
2022-03-25 19:48:23
544
原创 GBase 8c 函数与操作符——29-类型转换 | 函数
函数类型转换规则和优先级如下:从系统表pg_proc中选择所有可能被选到的函数。如果使用了一个不带模式修饰的函数名字,那么认为该函数是那些在当前搜索路径中的函数。如果给出一个带修饰的函数名,那么只考虑指定模式中的函数。a)如果搜索路径中找到了多个不同参数类型的函数,将选择搜索路径中最早出现的函数;查找和输入参数类型完全匹配的函数。如果找到一个,则用之。如果输入的实参类型都是unknown类型,则不会找到匹配的函数。如果未找到完全匹配,请查看该函数是否为一个特殊的类型转换函数。寻找最优匹配。a)
2022-03-25 19:47:05
588
原创 GBase 8c 函数与操作符——28-类型转换 | 操作符
1、概述SQL是一种强类型语言,即每个数据项都有一个相关的数据类型,数据类型决定其行为和允许的用法。GBase 8c提供一种可扩展的通用规则来管理类型转换,这种做法允许使用混合类型的表达式。语法解析器将语法元素分解为五个基本种类:整数、非整数数字、字符串、标识符、关键字。大多数非数字类型常量首先被分类为字符串,例如查询:SELECT text 'Origin' AS "label", point '(0,0)' AS "value"; label | value--------+-------
2022-03-25 19:45:34
819
原创 GBase 8c 函数与操作符——27-条件表达式 | 事件触发器函数
本节的函数,用来从事件触发器中检索信息。1、捕获命令结尾的改变pg_event_trigger_ddl_commands返回通过每个用户操作执行的DDL命令列表,当调用函数中ddl_command_end事件触发器,如果在任何其它上下文中调用,则抛出一个错误。pg_event_trigger_ddl_commands返回每个基本执行命令的每一行,单独SQL语句的命令可能返回多行。此函数返回以下列:2、通过DDL命令删除处理的对象pg_event_trigger_dropped_objects返回
2022-03-25 19:39:18
456
原创 GBase 8c 函数与操作符——26-条件表达式 | 触发器函数
数据库提供触发器函数:suppress_redundant_updates_trigger,该函数会阻止那些不更改数据的更新(这些更新会花费大量不必要的耗时)。suppress_redundant_updates_trigger函数可以像这样被加到一个表:CREATE TRIGGER z_min_updateBEFORE UPDATE ON tablenameFOR EACH ROW EXECUTE PROCEDURE suppress_redundant_updates_trigger();一
2022-03-25 19:36:12
440
原创 GBase 8c 函数与操作符——25-条件表达式 | 系统信息函数(下)
1、数据库对象管理函数数据库对象尺寸函数:数据库对象定位函数:排序规则管理函数:2、索引维护函数3、通用文件访问函数4、咨询锁函数5、其他函数连接池函数:管理新添加节点:...
2022-03-25 19:34:14
426
原创 GBase 8c 函数与操作符——24-条件表达式 | 系统信息函数(中)
1、快照同步函数快照同步函数为pg_export_snapshot(),它的返回类型是text,主要作用是保存当前快照并返回它的标识符。2、复制函数(Replication Functions)
2022-03-25 19:17:01
208
原创 GBase 8c 函数与操作符——23-条件表达式 | 系统信息函数(上)
1、配置设定函数2、服务器信号函数3、备份控制函数4、恢复控制函数恢复信息函数:恢复控制函数:这些函数只能在恢复过程中被执行。
2022-03-23 20:31:20
184
原创 GBase 8c 函数与操作符——21-条件表达式 | 集合返回函数
本节描述的函数,可能返回多行结果。首先,应用最广泛的是初级生成函数。其函数描述及使用如下:下标生成函数:
2022-03-23 20:24:21
195
原创 GBase 8c 函数与操作符——18-条件表达式 | 窗口函数
窗口函数提供实时的数据执行计算的能力。窗口函数基于结果集进行计算,并将计算出的结果合并到输出的结果集上,并返回多行。使用聚集函数能大幅简化SQL代码。上述函数,必须使用标准窗口函数语法(OVER)调用,且依赖于ORDER BY子句进行排序。...
2022-03-23 20:15:26
485
原创 GBase 8c 函数与操作符——17-条件表达式 | 聚集函数
聚集函数将结果集进行计算并通常返回一行。包括通用聚集函数、用于统计的聚集函数、有序集聚集函数、假想集聚集函数。1、通用聚集函数:2、用于统计的聚集函数:3、有序集聚集函数4、假想集聚集函数这些假想集聚集的每一个args中给定的直接参数列表必须匹配sorted_args中给定的聚集参数的数量和类型。...
2022-03-23 20:12:47
188
原创 GBase 8c 函数与操作符——16-条件表达式 | 范围函数和操作符
1、范围函数和操作符下表为可用的范围类型操作符:可用的范围类型的函数:如果范围为空或者被请求的界是无限的,lower和upper函数返回空值。函数lower_inc、upper_inc、lower_inf和upper_inf对一个空范围全部返回假。...
2022-03-23 20:06:07
252
原创 GBase 8c 函数与操作符——15-条件表达式 | 数组函数和操作符
基本表达式描述及语法:1、数组函数和操作符下表显示了可以用于数组类型的操作符:下表展示了可用于数组类型的函数:在array_position和array_positions中, 每个数组元素与使用IS NOT DISTINCT FROM语法的搜索值进行比较。在array_position中,如果没有找到该值,则返回NULL。在array_positions中,如果数组是NULL,则返回NULL; 如果数组中没有找到该值,相反返回空数组。在string_to_array中,如果定界符参数
2022-03-23 19:59:56
207
原创 GBase 8c 函数与操作符——14-JSON 函数和操作符
1、处理和创建JSON数据json和jsonb 操作符:序列操作函数:序列操作函数是用于操作序列对象的函数,序列对象都是用CREATE SEQUENCE创建的特殊的单行表。2、SQL/JSON路径语言SQL/JSON路径表达式指定了要从JSON数据中检索的项目,类似于SQL访问XML时使用的XPath表达式。在GBase 8c中,路径表达式作为jsonpath数据类型实现,可以使用第 JSON类型中描述的任何元素。JSON查询函数和操作符将提供的路径表达式传递给路径引擎进行评估。如果表达式与
2022-03-23 19:50:56
594
原创 GBase 8c 函数与操作符——13-XML函数
使用XML函数:注意:使用前需要在安装数据库时提前编译:configure --with-libxml
2022-02-10 10:51:55
334
原创 GBase 8c 函数与操作符——11-网络地址函数和操作符
可用于cidr和inet的操作符:可用于cidr和inet的函数:可以用于macaddr类型的函数:可用于macaddr8 类型的函数:
2022-02-10 10:44:13
81
原创 GBase 8c 函数与操作符——10-几何函数和操作符
几何类型point、box、 lseg、line、path、 polygon和circle的本地支持函数:几何操作符:几何类型转换函数:
2022-02-10 10:41:00
90
原创 GBase 8c 函数与操作符——9-枚举支持函数
假设一个枚举类型被创建为:CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple');则有:
2022-02-10 10:37:27
76
原创 GBase 8c 函数与操作符——7-数据类型格式化函数
GBase 8c数据库格式化函数提供一套强大的工具用于把各种数据类型 (日期/时间、整数、浮点、数字) 转换成格式化的字符串以及反过来从格式化的字符串转换成指定的数据类型。这些函数都遵循一个公共的调用习惯: 第一个参数是待格式化的值,而第二个是一个定义输出或输入格式的模板。...
2022-02-10 10:02:55
212
原创 GBase 8c 函数与操作符——6-模式匹配
GBase 8c提供了三种独立的实现模式匹配的方法:LIKE操作符、SIMILAR TO操作符和POSIX-风格的正则表达式。1、LIKEstring LIKE pattern [ESCAPE escape-character]string NOT LIKE pattern [ESCAPE escape-character]如果该string匹配了提供的pattern,那么LIKE表达式返回真。例如:'abc' LIKE 'abc' true'abc' LIKE 'a%' tru
2022-02-10 09:59:12
372
原创 GBase 8c 函数与操作符——4-二进制串函数和操作符
本节描述了检查和操作类型为bytea的函数和操作符,下表为SQL二进制串函数和操作符:以及一些其他二进制串函数:get_byte和set_byte把一个二进制串中的一个字节计数为字节 0。get_bit和set_bit在每一个字节中从右边起计数位;例如位 0 是第一个字节的最低有效位,而位 15 是第二个字节的最高有效位。...
2022-02-10 09:50:27
83
空空如也
读取数据库存储的字符串总是读取不对
2022-02-21
货币类型的数字小数点后面可以改吗?
2022-02-21
移除GBase 8c角色Jimmy失败,报错显示不存在,请问怎么判断是否创建了这个角色?
2022-02-21
Gbase 8c无法删除角色?
2022-01-24
如何查询Gbase 8c索引
2022-01-24
Gbase 8c 客户端如何更改连接角色?
2022-01-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人