PostgreSQL 全文检索之 - 位置匹配 过滤语法 (如 '速度 <1> 激情')

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

PostgreSQL 全文检索之 - 位置匹配 过滤语法 (如 '速度 <1> 激情')

德哥 2018-01-27 21:41:47 浏览1381
展开阅读全文

标签

PostgreSQL , 全文检索 , 位置过滤


背景

PostgreSQL 的全文检索功能非常的丰富,除了我们说的开放式的parser,字典。同时还支持ranking算法(内置以及扩展)。

那么实际上在搜索的需求中,还有一类位置过滤的需求,例如“速度与激情”这个词,分词后是有位置信息的,我们期望搜到的是“速度”和“激情”之间间隔一个的情况,提高精准度。

PostgreSQL的搜索距离的语法如下:

select * from tbl where ts @@ '速度 <距离值> 激情'::tsquery;  
  
如  
  
select * from tbl where ts @@ '速度 <1> 激情'::tsquery;  

例子

首先需要一个中文分词器,RDS PG自带,无需下载。

https://gith

网友评论

登录后评论
0/500
评论
德哥
+ 关注
所属云栖号: 阿里云数据库ApsaraDB