网站首页 > 教程分享 正文
·说起全文搜索,最先想到的一定是Lucene和Elasticsearch;其中ES是基于Lucene,并且为开发者提供丰富的接口和工具。
PostgreSQL提供了函数to_tsvector将一个文档转换成tsvector数据类型,to_tsvector('english', search_vector)函数将search_vector字段转换成tsvector类型,GIN是一种适合高速搜索tsvector的索引类型。
to_tsquery('english', friend)函数将“friend”转换成tsquery类型,@@操作符用于判断一个tsvector是否包含另一个tsquery。
加速全文搜索——GIN 和 GIST 索引类型 |
GIN 索引是更好的文本搜索索引类型。作为倒排索引,每个词(词位)在 其中都有一个索引项,其中有压缩过的匹配位置的列表。多次搜索可以找到 第一个匹配,然后使用该索引移除缺少额外词的行。GIN 索引只存储 tsvector值的词(词位),并且不存储它们的权重标签。因此, 在使用涉及权重的查询时需要一次在表行上的重新检查;
CREATE INDEX name ON table USING GIN(column);
创建一个基于 GIN(通用倒排索引)的索引。column必须是tsvector类型
GiST 索引是有损的(是因为每一个文档在索引中被表示为一个定长的签名,以字节为单位的签名长度由可选整数参数 siglen 的值决定),这表示索引可能产生假匹配,并且有必要检查真实的表行来消除这种假匹配(PostgreSQL在需要时会自动做这一步);
GiST 索引可以被覆盖,例如使用INCLUDE子句。包含的列可以具有没有任何 GiST 操作符类的数据类型。包含的属性将非压缩存储。
CREATE INDEX name ON table USING GIST (column [ { DEFAULT | tsvector_ops } (siglen = number) ] );
创建一个基于 GiST(通用搜索树)的索引。column可以是tsvector或tsquery类型。可选整数参数siglen确定以字节为单位的签名长度。
在实际生产应该中一般会使用触发器函数生成向量进行全文检索!!!!!!
触发器声明了 当执行一种特定类型的操作时 数据库 应该自动执行一个特殊的函数。触发器可以被附加到表(分区的或者不分区的)、视图和外部表。可以被定义为在 INSERT、UPDATE或 DELETE操作之前或之后被执行,也可以被 TRUNCATE语句触发
CREATE TRIGGER 创建触发器;
语句级BEFORE触发器在语句开始做任何事情之前被触发,而语句级AFTER触发器则在语句做完所有事情之后被触发; 行级BEFORE触发器在每一个行被操作之前被触发,而行级AFTER触发器在语句结束之后被触发(但在任何语句级AFTER触发器之前)。
猜你喜欢
- 2024-10-25 PostgreSQL之慢SQL语句(如何解决慢sql)
- 2024-10-25 Postgresql语法(POSTGRESQL语法)
- 2024-10-25 python开发-操作postgresql数据库
- 2024-10-25 新手如何快速搭建多套PostgreSQL集群
- 2024-10-25 Postgresql基础操作实战(postgresql基础操作实战视频)
- 2024-10-25 一次近乎完美的PostgreSQL版本大升级实践
- 2024-10-25 数据库大师成长日记:您所不知道的PostgreSQL,值得收藏
- 2024-10-25 【PostgreSQL】AUTO_EXPLAIN - 慢速查询的日志执行计划
- 2024-10-25 postgresql安装及使用(postgresql安装使用)
- 2024-10-25 PostgreSQL系列(三):字符串类型操作(一)
你 发表评论:
欢迎- 最近发表
-
- IT之家学院:使用PIN或密码审批管理员权限
- Yarn 安装的时候提示错误 error:0308010C:digital envelope routines
- Windows常用的一些CMD运行命令(windows常见的命令)
- 电脑忘记开机密码10秒解决(戴尔电脑忘记开机密码10秒解决)
- 如何下载Windows 10聚焦提供的锁屏壁纸
- Windows CMD 命令大全:简单粗暴收藏!
- 系统小技巧:解决CHKDSK只读模式问题
- Windows的cmd都有哪些奇技淫巧?这22个CMD命令记得收藏起来!
- windows错误代码0x80072EE2?win10系统更新错误问题的处理方法
- Windows 10技术预览版快捷键方式汇总
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)