
openGauss
文章平均质量分 73
冯岳松
这个作者很懒,什么都没留下…
展开
-
PostgreSQL自定义文本检索分词规则
由于是为文本检索而设计,所以默认的分词规则和字典都是按照自然语言的规则来实现。但对于以上需求,已经不是文本检索,而是为了使用文本检索+倒排索引实现自己的查询需求,所以分词器也需要自定义。PostgreSQL提供了丰富的字典自定义方法,可以很轻松地对字典的规则进行自定义。,仅使用了空格作为token的分割符,所有token都是一种类型,完成了需求。,将会影响到正常文本检索的分词逻辑,所以使用插件的方式新增一个分词规则。接下来自定义一个分词器,实现自定义规则拆分token的功能。......原创 2022-08-18 17:32:01 · 1050 阅读 · 0 评论 -
PostgreSQL文本搜索(七)——自定义配置
有几个预定义的文本搜索配置可用,你也可以很容易地创建自定义配置。为了便于管理文本搜索对象,有一组SQL命令可用,还有几个psql命令可以显示文本搜索对象的信息。所需的所有选项:使用词法分析器将文本分解为token,以及使用词典将每个token转化为lexeme。指定了默认配置的名称,如果省略了一个明确的配置参数,文本搜索函数就会使用这个配置。我们将使用一个PostgreSQL专用的同义词列表,并将其存储在。的调用都需要一个文本搜索配置来执行其处理。下一步是设置会话使用新的配置,该配置是在。...原创 2022-08-18 16:19:52 · 832 阅读 · 0 评论 -
PostgreSQL文本搜索(六)——词典
词典用于消除在搜索中不应考虑的词(停顿词),并使词规范化,以便同一词的不同派生形式能够匹配。一个成功规范化的词被称为lexeme(词位、词素)。除了提高搜索质量之外,规范化和删除停顿词可以减少文档的tsvector的大小,从而提高性能。规范化并不总是具有语言学意义,通常取决于实际应用决定的语义。TSL_FILTERPostgreSQL为许多语言提供预定义的词典。也有几个预定义的模板,可以用来创建带有自定义参数的新词典。下文描述了每个预定义的词典模板。...原创 2022-08-18 11:39:38 · 670 阅读 · 0 评论 -
PostgreSQL文本搜索(五)——词法分析器
文本搜索词法分析器负责将原始文档文本分割成token,并确定每个token的类型,其中可能的类型集合由词法分析器本身定义。注意分析器根本不修改文本,它只是识别合理的词的边界。由于这种有限的范围,对特定应用的自定义分析器的需求比对自定义字典的需求要少。目前PostgreSQL只提供了一个内置的分析器,它已经被发现对广泛的应用很有用。仅包含基本ASCII字母的词被报告为一个单独的token类型,因为有时区分它们是很有用的。分析器对"字母"的概念是由数据库的区域设置决定的,特别是。内置的分析器被命名为。...原创 2022-08-18 09:14:46 · 240 阅读 · 0 评论 -
PostgreSQL文本搜索(一)——简介
文档是全文检索系统中的检索单位,例如一篇杂志文章或一封电子邮件。文本搜索引擎必须能够解析文档并存储词位(关键词)与它们的父文档的关联。之后,这些关联被用来搜索包含查询词的文档。对于PostgreSQL中的搜索,一个文档通常是数据库表中的一行文本字段,或者可能是这种字段的组合(连接),可能存储在几个表中或动态地获得。换句话说,一个文档可以由不同的部分构成索引,它可能不会作为一个整体存储在任何地方。......原创 2022-08-15 14:09:12 · 1719 阅读 · 0 评论 -
PostgreSQL文本搜索(二)——表和索引
上一节的例子说明了使用简单的常量字符串进行全文匹配。本节展示了如何搜索表数据,或选择使用索引。原创 2022-08-17 10:41:56 · 541 阅读 · 0 评论 -
openGauss源码解析——列存压缩算法
如果字典压缩失败或者没有允许使用字典压缩,则直接对于LOW和MIDDLE级别使用lz4压缩,对于HIGH级别使用zlib压缩。如果是IntLike(类整型)char类型则由IntegerCoder类完成,先使用Delta压缩,如果开启了RLE则使用RLE压缩,如果压缩级别为MIDDLE或HIGH,则还需要进行lz4或zlib压缩。对于IntegerCoder类的压缩,会先进行Delta压缩,如果使用RLE的话再使用RLE压缩,然后对压缩级别为MIDDLE和HIGH的情况分别使用lz4和zlib压缩。....原创 2022-07-27 10:55:06 · 549 阅读 · 0 评论 -
openGauss列存数据压缩实验
float值为0到100的随机浮点数,timestamp值为日期相同、一日中时间不同的随机事件戳(日期相同是为了更符合时序场景)。对于时序场景,float和timestamp类型占比较大,需要重点关注,较高的压缩率可以降低磁盘空间的使用。本次实验针对float和timestamp类型,测试了openGauss列存储引擎的数据压缩率。openGauss版本为3.0.0,表大小为50万条数据。......原创 2022-07-27 17:09:18 · 444 阅读 · 0 评论