pgroonga
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pgroonga | 4.1.0 | FTS | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 2110 | pgroonga | Yes | Yes | No | Yes | No | No | - |
| 2111 | pgroonga_database | No | Yes | No | Yes | No | No | - |
| Related | pg_search pg_textsearch pg_fts pg_bigm zhparser pg_tokenizer pg_cjk_parser vchord_bm25 pg_bestmatch pg_jieba dict_xsyn unaccent |
|---|
Requires Groonga >= 15.1.7, MessagePack and xxHash.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 4.1.0 | 1817161514 | pgroonga | - |
| RPM | PIGSTY | 4.1.0 | 1817161514 | pgroonga_$v | groonga-libs, msgpack, xxhash-libs |
| DEB | PIGSTY | 4.1.0 | 1817161514 | postgresql-$v-pgroonga | libgroonga0, `libmsgpackc2 |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 4.1.0 el8.x86_64.pg18 : pgroonga_18 pgroonga_18-4.1.0-1PGSTY.el8.x86_64.rpm
| PIGSTY 4.1.0 el8.x86_64.pg17 : pgroonga_17 pgroonga_17-4.1.0-1PGSTY.el8.x86_64.rpm
| PIGSTY 4.1.0 el8.x86_64.pg16 : pgroonga_16 pgroonga_16-4.1.0-1PGSTY.el8.x86_64.rpm
| PIGSTY 4.1.0 el8.x86_64.pg15 : pgroonga_15 pgroonga_15-4.1.0-1PGSTY.el8.x86_64.rpm
| PIGSTY 4.1.0 el8.x86_64.pg14 : pgroonga_14 pgroonga_14-4.1.0-1PGSTY.el8.x86_64.rpm
|
| el8.aarch64 | PIGSTY 4.1.0 el8.aarch64.pg18 : pgroonga_18 pgroonga_18-4.1.0-1PGSTY.el8.aarch64.rpm
| PIGSTY 4.1.0 el8.aarch64.pg17 : pgroonga_17 pgroonga_17-4.1.0-1PGSTY.el8.aarch64.rpm
| PIGSTY 4.1.0 el8.aarch64.pg16 : pgroonga_16 pgroonga_16-4.1.0-1PGSTY.el8.aarch64.rpm
| PIGSTY 4.1.0 el8.aarch64.pg15 : pgroonga_15 pgroonga_15-4.1.0-1PGSTY.el8.aarch64.rpm
| PIGSTY 4.1.0 el8.aarch64.pg14 : pgroonga_14 pgroonga_14-4.1.0-1PGSTY.el8.aarch64.rpm
|
| el9.x86_64 | PIGSTY 4.1.0 el9.x86_64.pg18 : pgroonga_18 pgroonga_18-4.1.0-1PGSTY.el9.x86_64.rpm
| PIGSTY 4.1.0 el9.x86_64.pg17 : pgroonga_17 pgroonga_17-4.1.0-1PGSTY.el9.x86_64.rpm
| PIGSTY 4.1.0 el9.x86_64.pg16 : pgroonga_16 pgroonga_16-4.1.0-1PGSTY.el9.x86_64.rpm
| PIGSTY 4.1.0 el9.x86_64.pg15 : pgroonga_15 pgroonga_15-4.1.0-1PGSTY.el9.x86_64.rpm
| PIGSTY 4.1.0 el9.x86_64.pg14 : pgroonga_14 pgroonga_14-4.1.0-1PGSTY.el9.x86_64.rpm
|
| el9.aarch64 | PIGSTY 4.1.0 el9.aarch64.pg18 : pgroonga_18 pgroonga_18-4.1.0-1PGSTY.el9.aarch64.rpm
| PIGSTY 4.1.0 el9.aarch64.pg17 : pgroonga_17 pgroonga_17-4.1.0-1PGSTY.el9.aarch64.rpm
| PIGSTY 4.1.0 el9.aarch64.pg16 : pgroonga_16 pgroonga_16-4.1.0-1PGSTY.el9.aarch64.rpm
| PIGSTY 4.1.0 el9.aarch64.pg15 : pgroonga_15 pgroonga_15-4.1.0-1PGSTY.el9.aarch64.rpm
| PIGSTY 4.1.0 el9.aarch64.pg14 : pgroonga_14 pgroonga_14-4.1.0-1PGSTY.el9.aarch64.rpm
|
| el10.x86_64 | PIGSTY 4.1.0 el10.x86_64.pg18 : pgroonga_18 pgroonga_18-4.1.0-1PGSTY.el10.x86_64.rpm
| PIGSTY 4.1.0 el10.x86_64.pg17 : pgroonga_17 pgroonga_17-4.1.0-1PGSTY.el10.x86_64.rpm
| PIGSTY 4.1.0 el10.x86_64.pg16 : pgroonga_16 pgroonga_16-4.1.0-1PGSTY.el10.x86_64.rpm
| PIGSTY 4.1.0 el10.x86_64.pg15 : pgroonga_15 pgroonga_15-4.1.0-1PGSTY.el10.x86_64.rpm
| PIGSTY 4.1.0 el10.x86_64.pg14 : pgroonga_14 pgroonga_14-4.1.0-1PGSTY.el10.x86_64.rpm
|
| el10.aarch64 | PIGSTY 4.1.0 el10.aarch64.pg18 : pgroonga_18 pgroonga_18-4.1.0-1PGSTY.el10.aarch64.rpm
| PIGSTY 4.1.0 el10.aarch64.pg17 : pgroonga_17 pgroonga_17-4.1.0-1PGSTY.el10.aarch64.rpm
| PIGSTY 4.1.0 el10.aarch64.pg16 : pgroonga_16 pgroonga_16-4.1.0-1PGSTY.el10.aarch64.rpm
| PIGSTY 4.1.0 el10.aarch64.pg15 : pgroonga_15 pgroonga_15-4.1.0-1PGSTY.el10.aarch64.rpm
| PIGSTY 4.1.0 el10.aarch64.pg14 : pgroonga_14 pgroonga_14-4.1.0-1PGSTY.el10.aarch64.rpm
|
| d12.x86_64 | PIGSTY 4.1.0 d12.x86_64.pg18 : postgresql-18-pgroonga postgresql-18-pgroonga_4.1.0-1PGSTY~bookworm_amd64.deb
| PIGSTY 4.1.0 d12.x86_64.pg17 : postgresql-17-pgroonga postgresql-17-pgroonga_4.1.0-1PGSTY~bookworm_amd64.deb
| PIGSTY 4.1.0 d12.x86_64.pg16 : postgresql-16-pgroonga postgresql-16-pgroonga_4.1.0-1PGSTY~bookworm_amd64.deb
| PIGSTY 4.1.0 d12.x86_64.pg15 : postgresql-15-pgroonga postgresql-15-pgroonga_4.1.0-1PGSTY~bookworm_amd64.deb
| PIGSTY 4.1.0 d12.x86_64.pg14 : postgresql-14-pgroonga postgresql-14-pgroonga_4.1.0-1PGSTY~bookworm_amd64.deb
|
| d12.aarch64 | PIGSTY 4.1.0 d12.aarch64.pg18 : postgresql-18-pgroonga postgresql-18-pgroonga_4.1.0-1PGSTY~bookworm_arm64.deb
| PIGSTY 4.1.0 d12.aarch64.pg17 : postgresql-17-pgroonga postgresql-17-pgroonga_4.1.0-1PGSTY~bookworm_arm64.deb
| PIGSTY 4.1.0 d12.aarch64.pg16 : postgresql-16-pgroonga postgresql-16-pgroonga_4.1.0-1PGSTY~bookworm_arm64.deb
| PIGSTY 4.1.0 d12.aarch64.pg15 : postgresql-15-pgroonga postgresql-15-pgroonga_4.1.0-1PGSTY~bookworm_arm64.deb
| PIGSTY 4.1.0 d12.aarch64.pg14 : postgresql-14-pgroonga postgresql-14-pgroonga_4.1.0-1PGSTY~bookworm_arm64.deb
|
| d13.x86_64 | PIGSTY 4.1.0 d13.x86_64.pg18 : postgresql-18-pgroonga postgresql-18-pgroonga_4.1.0-1PGSTY~trixie_amd64.deb
| PIGSTY 4.1.0 d13.x86_64.pg17 : postgresql-17-pgroonga postgresql-17-pgroonga_4.1.0-1PGSTY~trixie_amd64.deb
| PIGSTY 4.1.0 d13.x86_64.pg16 : postgresql-16-pgroonga postgresql-16-pgroonga_4.1.0-1PGSTY~trixie_amd64.deb
| PIGSTY 4.1.0 d13.x86_64.pg15 : postgresql-15-pgroonga postgresql-15-pgroonga_4.1.0-1PGSTY~trixie_amd64.deb
| PIGSTY 4.1.0 d13.x86_64.pg14 : postgresql-14-pgroonga postgresql-14-pgroonga_4.1.0-1PGSTY~trixie_amd64.deb
|
| d13.aarch64 | PIGSTY 4.1.0 d13.aarch64.pg18 : postgresql-18-pgroonga postgresql-18-pgroonga_4.1.0-1PGSTY~trixie_arm64.deb
| PIGSTY 4.1.0 d13.aarch64.pg17 : postgresql-17-pgroonga postgresql-17-pgroonga_4.1.0-1PGSTY~trixie_arm64.deb
| PIGSTY 4.1.0 d13.aarch64.pg16 : postgresql-16-pgroonga postgresql-16-pgroonga_4.1.0-1PGSTY~trixie_arm64.deb
| PIGSTY 4.1.0 d13.aarch64.pg15 : postgresql-15-pgroonga postgresql-15-pgroonga_4.1.0-1PGSTY~trixie_arm64.deb
| PIGSTY 4.1.0 d13.aarch64.pg14 : postgresql-14-pgroonga postgresql-14-pgroonga_4.1.0-1PGSTY~trixie_arm64.deb
|
| u22.x86_64 | PIGSTY 4.1.0 u22.x86_64.pg18 : postgresql-18-pgroonga postgresql-18-pgroonga_4.1.0-1PGSTY~jammy_amd64.deb
| PIGSTY 4.1.0 u22.x86_64.pg17 : postgresql-17-pgroonga postgresql-17-pgroonga_4.1.0-1PGSTY~jammy_amd64.deb
| PIGSTY 4.1.0 u22.x86_64.pg16 : postgresql-16-pgroonga postgresql-16-pgroonga_4.1.0-1PGSTY~jammy_amd64.deb
| PIGSTY 4.1.0 u22.x86_64.pg15 : postgresql-15-pgroonga postgresql-15-pgroonga_4.1.0-1PGSTY~jammy_amd64.deb
| PIGSTY 4.1.0 u22.x86_64.pg14 : postgresql-14-pgroonga postgresql-14-pgroonga_4.1.0-1PGSTY~jammy_amd64.deb
|
| u22.aarch64 | PIGSTY 4.1.0 u22.aarch64.pg18 : postgresql-18-pgroonga postgresql-18-pgroonga_4.1.0-1PGSTY~jammy_arm64.deb
| PIGSTY 4.1.0 u22.aarch64.pg17 : postgresql-17-pgroonga postgresql-17-pgroonga_4.1.0-1PGSTY~jammy_arm64.deb
| PIGSTY 4.1.0 u22.aarch64.pg16 : postgresql-16-pgroonga postgresql-16-pgroonga_4.1.0-1PGSTY~jammy_arm64.deb
| PIGSTY 4.1.0 u22.aarch64.pg15 : postgresql-15-pgroonga postgresql-15-pgroonga_4.1.0-1PGSTY~jammy_arm64.deb
| PIGSTY 4.1.0 u22.aarch64.pg14 : postgresql-14-pgroonga postgresql-14-pgroonga_4.1.0-1PGSTY~jammy_arm64.deb
|
| u24.x86_64 | PIGSTY 4.1.0 u24.x86_64.pg18 : postgresql-18-pgroonga postgresql-18-pgroonga_4.1.0-1PGSTY~noble_amd64.deb
| PIGSTY 4.1.0 u24.x86_64.pg17 : postgresql-17-pgroonga postgresql-17-pgroonga_4.1.0-1PGSTY~noble_amd64.deb
| PIGSTY 4.1.0 u24.x86_64.pg16 : postgresql-16-pgroonga postgresql-16-pgroonga_4.1.0-1PGSTY~noble_amd64.deb
| PIGSTY 4.1.0 u24.x86_64.pg15 : postgresql-15-pgroonga postgresql-15-pgroonga_4.1.0-1PGSTY~noble_amd64.deb
| PIGSTY 4.1.0 u24.x86_64.pg14 : postgresql-14-pgroonga postgresql-14-pgroonga_4.1.0-1PGSTY~noble_amd64.deb
|
| u24.aarch64 | PIGSTY 4.1.0 u24.aarch64.pg18 : postgresql-18-pgroonga postgresql-18-pgroonga_4.1.0-1PGSTY~noble_arm64.deb
| PIGSTY 4.1.0 u24.aarch64.pg17 : postgresql-17-pgroonga postgresql-17-pgroonga_4.1.0-1PGSTY~noble_arm64.deb
| PIGSTY 4.1.0 u24.aarch64.pg16 : postgresql-16-pgroonga postgresql-16-pgroonga_4.1.0-1PGSTY~noble_arm64.deb
| PIGSTY 4.1.0 u24.aarch64.pg15 : postgresql-15-pgroonga postgresql-15-pgroonga_4.1.0-1PGSTY~noble_arm64.deb
| PIGSTY 4.1.0 u24.aarch64.pg14 : postgresql-14-pgroonga postgresql-14-pgroonga_4.1.0-1PGSTY~noble_arm64.deb
|
| u26.x86_64 | PIGSTY 4.1.0 u26.x86_64.pg18 : postgresql-18-pgroonga postgresql-18-pgroonga_4.1.0-1PGSTY~resolute_amd64.deb
| PIGSTY 4.1.0 u26.x86_64.pg17 : postgresql-17-pgroonga postgresql-17-pgroonga_4.1.0-1PGSTY~resolute_amd64.deb
| PIGSTY 4.1.0 u26.x86_64.pg16 : postgresql-16-pgroonga postgresql-16-pgroonga_4.1.0-1PGSTY~resolute_amd64.deb
| PIGSTY 4.1.0 u26.x86_64.pg15 : postgresql-15-pgroonga postgresql-15-pgroonga_4.1.0-1PGSTY~resolute_amd64.deb
| PIGSTY 4.1.0 u26.x86_64.pg14 : postgresql-14-pgroonga postgresql-14-pgroonga_4.1.0-1PGSTY~resolute_amd64.deb
|
| u26.aarch64 | PIGSTY 4.1.0 u26.aarch64.pg18 : postgresql-18-pgroonga postgresql-18-pgroonga_4.1.0-1PGSTY~resolute_arm64.deb
| PIGSTY 4.1.0 u26.aarch64.pg17 : postgresql-17-pgroonga postgresql-17-pgroonga_4.1.0-1PGSTY~resolute_arm64.deb
| PIGSTY 4.1.0 u26.aarch64.pg16 : postgresql-16-pgroonga postgresql-16-pgroonga_4.1.0-1PGSTY~resolute_arm64.deb
| PIGSTY 4.1.0 u26.aarch64.pg15 : postgresql-15-pgroonga postgresql-15-pgroonga_4.1.0-1PGSTY~resolute_arm64.deb
| PIGSTY 4.1.0 u26.aarch64.pg14 : postgresql-14-pgroonga postgresql-14-pgroonga_4.1.0-1PGSTY~resolute_arm64.deb
|
Build
You can build the RPM / DEB packages for pgroonga using pig build:
Install
You can install pgroonga directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Create Extension:
Usage
Sources:
pgroonga 4.1.0 provides Groonga-backed indexes for multilingual full-text search. It installs the pgroonga access method and SQL operators; ordinary use does not require shared preload.
Core Workflow
Install compatible PGroonga and Groonga libraries, then create the extension as an administrator:
Important Objects
&@matches a keyword;&@~accepts Groonga query syntax. Supported LIKE/ILIKE searches can also use the index, with rechecks where required.pgroonga_score(tableoid, ctid)retrieves search scores. Confirm the intended index plan when using score-based ordering.pgroonga_highlight_html()andpgroonga_query_extract_keywords()produce highlighted search results;pgroonga_snippet_html()provides surrounding text.- New in 4.0.9,
pgroonga_physical_table_names(partitioned_index, prefix)returns a text array of Groonga command arguments identifying the physical tables behind partition indexes. This release also incrementspg_stat_user_indexes.idx_scanfor PGroonga scans.
Maintenance and Privileges
The 4.0.9 control file declares neither trusted installation nor relocatability; do not assume ordinary users can install it or move it between schemas. Index creation and queries follow the relevant table privileges. Match the extension and Groonga libraries to the target PostgreSQL build and follow upstream upgrade guidance before replacing binaries.
PGroonga manages derived index files in addition to table data. Plan disk capacity and backup/recovery procedures accordingly. Use REINDEX for index repair where appropriate. The separate pgroonga_database module is a recovery tool for damaged internal Groonga databases and is not needed for normal searches. Do not disable sequential scans globally merely to force an index in production.
Pigsty Runtime Compatibility
The current Pigsty EL8 and EL9 packages have a confirmed coexistence limit with PostGIS Raster on both x86_64 and aarch64, across PostgreSQL 14–18. Groonga uses Arrow 22, while the tested GDAL/Raster stacks use Arrow 8 on EL8 and Arrow 9 on EL9. Loading both stacks into one PostgreSQL backend can crash it; a successful SQL query does not prove a normal backend exit.
Changing load order is not a complete fix: automatic session preload still produced backend-exit crashes on EL9 aarch64. Avoid enabling both stacks in the same backend until a compatible dependency combination is verified; isolate their use when necessary. The tested EL10 and Debian/Ubuntu combinations did not reproduce this failure, which does not establish compatibility for arbitrary other dependency versions. This is a Pigsty package-stack boundary, not an upstream requirement to preload PGroonga for ordinary search.
MeCab tokenization additionally needs the matching Groonga tokenizer plugin and dictionary. Installing the PostgreSQL extension alone does not supply every optional tokenizer; verify the requested tokenizer before building an index that names it.
Version 4.1.0
Version 4.1.0 fixes another session running VACUUM/ANALYZE before CREATE INDEX commits, which could remove index data. An index already affected may need REINDEX. Direct Groonga calls can use pgroonga_tuple_is_alive in post_filter with Groonga 16.1.3 or later. This source release does not change the separately documented Pigsty dependency-stack limitation.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)