This is a document for PGroonga 2.X and 3.X. See PGroonga 1.x document when you're using old PGroonga.

PGroonga versus GiST and GIN

PostgreSQL provides GiST and GIN as bundled indexes. You can use them for full text search against languages that use only alphabet and digit such as English. You can't use them for full text search against Japanese, Chinese and so on.

PGroonga's main feature is fast full text search against all languages. But PGroonga also provides general purpose index features for equality condition and comparison conditions. PGroonga provides more features rather than GiST and GIN. So you can use PGroonga as alternative of GiST and GIN.

This document describes the differences between PGroonga, GiST and GIN.

Characteristics

PostgreSQL document describes the characteristics of GiST and GIN. In short, searching by GiST is slower than searching by GIN but updating GiST is faster than updating GIN. GIN uses more disk space than GiST.

Searching by PGroonga is faster than GIN and updating PGroonga is faster than GiST. But PGroonga uses more disk space than GIN and GiST.

Here is a table that shows the above characteristics:

Index Search Update Disk usage
GIN Fast Slow Large
GiST Slow Fast Small
PGroonga Fastest Fastest Largest

Benchmark

See the following documents for PGroonga and GIN performance: