plone.pgcatalog¶
PostgreSQL-backed catalog for Plone, replacing ZCatalog BTrees with SQL queries on JSONB.
Key capabilities:
Drop-in replacement for Plone’s
portal_catalogAll standard ZCatalog index types supported
Full-text search with language-aware stemming (30 languages)
Optional BM25 ranking via VectorChord-BM25
Optional async text extraction from PDFs, Office docs, and images via Apache Tika
Zero ZODB cache pressure – no BTree objects stored
Transactional writes atomically alongside ZODB commit
Catalog data queryable from any PostgreSQL client
Requirements: Python 3.12+, PostgreSQL 14+ (tested with 17), Plone 6, zodb-pgjsonb
Documentation¶
Learning-oriented – Step-by-step lessons to build skills.
Start here if you are new to plone.pgcatalog.
Goal-oriented – Solutions to specific problems.
Use these when you need to accomplish something.
Information-oriented – Technical specifications and API details.
Consult when you need detailed information.
Understanding-oriented – Architecture and design decisions.
Read to deepen your understanding of how it works.
Quick start¶
Run the quickstart demo (Docker + multilingual content in 5 minutes)