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

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

您好,

PGroonga 3.2.1 已发布!

此版本增加了对 WAL 资源管理器的支持!

有了 WAL 资源管理器支持,您可以解决在 PGroonga < 3.2.1 中使用通用 WAL 方法时出现的以下问题:

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

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

请注意,您需要 PostgreSQL 15 或更高版本,因为这是基于 PostgreSQL 15 之后提供的自定义 WAL 资源管理器功能。

如果您对如何实现 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 有二进制文件。

谢谢,