2025年9月25日: PostgreSQL 18 发布!

PGroonga 3.2.1 - 多语言快速全文搜索

发布于 2024-07-10,作者 PGroonga 项目
相关开源项目

您好!

PGroonga 3.2.1 已发布!

本次发布增加了对 WAL 资源管理器(WAL resource manager)的支持!

通过 WAL 资源管理器支持,您可以解决 PGroonga < 3.2.1 中使用通用 WAL 方法遇到的以下问题:

  • 您需要手动删除旧的 WAL 以避免无限的存储空间占用
  • 您需要使用额外的机制在后台应用 WAL
  • 您需要在 PostgreSQL 启动后从崩溃中恢复

有关如何使用此功能的更多信息,请参阅以下文档:通过 WAL 资源管理器进行流式复制

请注意,由于此功能基于 PostgreSQL 15 及以上版本中提供的自定义 WAL 资源管理器功能,因此您需要 PostgreSQL 15 或更高版本。

如果您对如何实现 WAL 资源管理器感兴趣,请参阅以下博客文章:

日语:如何实现 PGroonga 的 WAL 资源管理器

英语:文章的 Google 翻译

关于 PGroonga

PGroonga 是一个 PostgreSQL 扩展,它使 PostgreSQL 成为适用于所有语言的快速全文搜索平台!它在 PostgreSQL 许可下发布。

有一些 PostgreSQL 扩展可以改进 PostgreSQL 的全文搜索功能,例如 pg_trgm^1

pg_trgm 不支持使用非字母数字字符的语言,例如日语和中文。

PGroonga 支持所有语言,提供丰富的全文搜索相关功能,并且速度非常快。这是因为 PGroonga 使用强大的全文搜索引擎 Groonga ^2 作为后端。

有关性能,请参阅以下基准测试结果:

  • PGroonga、textsearch 和 pg_trgm 在英文维基百科上的基准测试结果 https://pgroonga.github.io/reference/pgroonga-versus-textsearch-and-pg-trgm.html
  • PGroonga 和 pg_bigm 在日文维基百科上的基准测试结果 https://pgroonga.github.io/reference/pgroonga-versus-pg-bigm.html

PGroonga 还支持 JSON 搜索。您可以将每个值用作条件。您还可以像 PostgreSQL 的 textsearch 一样对 JSON 中的所有文本执行全文搜索。

更新内容

以下是 PGroonga 3.2.1 的亮点:

  • 增加了对 WAL 资源管理器的支持
  • 增加了通过 ALTER EXTENSION ... UPDATE 进行降级支持
  • 增加了对 Ubuntu 24.04 (Noble Numbat) 的支持
  • 增加了对拼写容错搜索的支持
  • 修复了一些崩溃错误

请参阅 3.2.1 版本说明 以了解完整的更改。

用法

您无需具备全文搜索知识即可使用 PGroonga。只需创建一个索引并将条件放入 WHERE 子句即可。

CREATE INDEX index_name ON table USING pgroonga (column);
SELECT * FROM table WHERE column &@~ 'PostgreSQL';

您还可以使用 LIKE 语句来利用 PGroonga。PGroonga 提供了一个可以通过索引执行 LIKE 搜索的功能。带有 PGroonga 索引的 LIKE 搜索比没有索引的 LIKE 搜索更快。这意味着您可以在不更改使用以下 SQL 的应用程序的情况下提高性能:

SELECT * FROM table WHERE column LIKE '%PostgreSQL%';

您对 PGroonga 感兴趣吗?请安装 ^4 并尝试教程 ^5。您可以了解 PGroonga 的所有功能。

安装 PGroonga 非常容易。因为 PGroonga 为主流平台提供了软件包。Windows 也有二进制文件。

谢谢!