Skip to content

Latest commit

 

History

History
120 lines (35 loc) · 3.14 KB

20200330_01.md

File metadata and controls

120 lines (35 loc) · 3.14 KB

PostgreSQL 模糊查询增强插件pgroonga , pgbigm (含单字、双字、多字、多字节字符) - 支持JSON模糊查询等

作者

digoal

日期

2020-03-30

标签

PostgreSQL , pgroonga , pgbigm , 模糊查询 , 单字 , 双字 , 多字 , 多字节字符 , JSON模糊查询


背景

pg_trgm支持模糊查询, 但是它是三个连续字符为一个token进行切分的, 所以对单字、双字的模糊查询性能不好(没有切分到这个粒度), 所以要实现 单字、双字 模糊查询, 还需要依赖自定义切分, 比较麻烦. 方法如下:

《PostgreSQL 模糊查询最佳实践 - (含单字、双字、多字模糊查询方法)》

所以社区提供了一个增强trgm, pgbigm, 支持双字token, 如下:

=# SELECT show_bigm('full text search');  
                            show_bigm                               
------------------------------------------------------------------  
 {" f"," s"," t",ar,ch,ea,ex,fu,"h ","l ",ll,rc,se,"t ",te,ul,xt}  
(1 row)  

所以使用pgbigm可以支持单字、双字、多字、多字节字符的高效率模糊查询.

另外一个插件是pgroonga, 支持更多的操作符, 整合了多种类型的模糊查询, 包括json, 数组, 数值, 文本等.

用法参考:

http://pgbigm.osdn.jp/pg_bigm_en-1-2.html

http://pgbigm.osdn.jp/index_en.html

https://pgroonga.github.io/tutorial/

https://pgroonga.github.io/overview/

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

digoal's wechat