[PostgreSQL] PostgreSQL 的中文全文搜索的支持有什么扩展推荐吗?使用实际体验如何 ?

准备提供一个全文搜索功能,目前要求不是特别高,实际需求和机器配置非常有限,不想上 ElasticSearch & Lucene 这么重的家伙,但是 PostgreSQL 内置默认的全文搜索只支持字母语言,像中文需要额外安装或启用扩展。

经过搜索,发现 5 个扩展:zhparser,pg_jieba,PGroogna,pg_trgm 以及 pg_bigm 。

搜索到的文章信息里:

  • 提得比较多的很古早的 zhparser 和 pg_jieba 已经开发不活跃了;
  • PGroonga 开发非常活跃,支持所有语言,还有一堆很好的功能,但是有一个可大可小的毛病:不是安全崩溃的,如果更新期间 PostgreSQL 服务器崩溃,就极可能导致索引损坏,而一旦索引有损坏就得全部重新创建索引;
  • pg_trgm 是 PostgreSQL 自带的,但需要手动启用,PGroonga 介绍里说这个东西需要修改源代码才能支持全部语言,但是我没有在 PostgreSQL 官方文档看到相关说明,也不知道这个“不改代码不支持全部语言”会对我有多大影响。
  • pg_bigm 也支持全部语言,但是由于需要 recheck,很多时候会非常慢,禁用 recheck 又会引起别的问题。

这全文搜索方面的资料都好少,就好像没人用 PostgreSQL 自带的全文搜索功能一样……

你们有什么推荐和体验啊?

发表回复

您的电子邮箱地址不会被公开。