---
title: "An alternative full-text search option"
publication: "Postgres Weekly"
issue: 525
published_at: "2023-10-11"
canonical_url: "https://postgresweekly.com/issues/525"
---

Plus thinking about the next generation of Postgres contributors. |        

#​525 — October 11, 2023 

[Web Version](https://postgresweekly.com/issues/525)   

✍️ Due to being on the road at a conference, this is going to be a _compact and bijou_ issue – but maybe you'll prefer it that way! Back to full steam next week 😉
__
Peter Cooper, your editor 

Together with [![pgAnalyze\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_350,h_100/e_make_transparent/co_white,e_outline:7/lhwcvgc1asd4fzaahty4.png)](https://us02web.zoom.us/webinar/register/9016958520570/WN_84iRS1rgQnOF7DDG3Uv3ZA)   

Postgres Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/uf1ztbgy2eeltwyhynu0.jpg)](https://redmonk.com/jgovernor/2023/10/10/postgres-the-next-generation-investing-in-the-next-generation-of-committers/)  

[Postgres: The Next Generation?](https://redmonk.com/jgovernor/2023/10/10/postgres-the-next-generation-investing-in-the-next-generation-of-committers/) — It’s not often that op-eds on Postgres touch on the demographics of the core contributors, but James points to evidence that the majority of work on Postgres is done by a small group with a high median age. This isn’t a bad thing at all, but suggests efforts should be placed in encouraging new folks to become involved in maintaining the project. 

James Governor   

If _you_ want to join the 'next generation' of Postgres contributors, a place to start is the wiki's ["So, you want to be a developer?" resource](https://wiki.postgresql.org/wiki/So,_you_want_to_be_a_developer%3F), as well as Andrey Borodon's [▶️ 15 minute walkthrough](https://www.youtube.com/watch?v=rihfAnd_leM) of implementing a simple Postgres patch.  

🔎 [pg_bm25: 'Elastic'-Quality Full Text Search Inside Postgres](https://docs.paradedb.com/blog/introducing_bm25) — If you’ve run into some of the limitations with Postgres’s built-in full text search options, pg_bm25 is a new, Rust-based extension that introduces the BM25 index type which allegedly _“indexes 50 seconds faster than `tsvector` and ranks results 20x faster.”_ It can be added to a typical Postgres setup, but is also part of [ParadeDB](https://www.paradedb.com/), a Postgres-based ElasticSearch alternative from the same creators. 

ParadeDB   [![\](https://copm.s3.amazonaws.com/4a90c1ae.png)](https://us02web.zoom.us/webinar/register/9016958520570/WN_84iRS1rgQnOF7DDG3Uv3ZA) 

[Webinar: Automating Index Selection Using Constraint Programming](https://us02web.zoom.us/webinar/register/9016958520570/WN_84iRS1rgQnOF7DDG3Uv3ZA) — Get an introduction to a new approach for automatically determining which set of indexes to create for a given Postgres query workload, based on objectives chosen by the developer or DBA. Sign up for our webinar on Nov 15th, 2023 at 09:30 AM Pacific Time. 

pganalyze sponsor   

[A New Chapter for Transactions in Postgres](https://www.postgresql.org/docs/current/transactions.html) — A mildly misleading but factually true headline, as this is literally a _new chapter in the official Postgres documentation_ focusing on transaction processing internals. Bruce Momjian [notes](https://momjian.us/main/blogs/pgblog/2023.html#September_27_2023) that while these docs are new, the principles apply to older Postgres versions too. 

PostgreSQL Documentation   

[New Functions to Validate User Input](https://fluca1978.github.io/2023/09/25/PostgreSQLInputValidation.html) — Postgres 16 introduced the `pg_input_is_valid` function which tests if a given string is a valid input for casting to a specified data type, and the `pg_input_error_info` function which does the same but shares more detail about failures. 

Luca Ferrari   

[How to Set Up a Postgres Cluster using pg_cirrus on AWS](https://stormatics.tech/blogs/setting-up-pg_cirrus-on-aws-ec2-instances) — [pg_cirrus](https://github.com/stormatics/pg_cirrus) is a tool for setting up a 3-node highly available Postgres cluster on Linux systems. 

Salman Ahmed   

[Creating a Read-Only Postgres User](https://www.crunchydata.com/blog/creating-a-read-only-postgres-user) — Golden oldie. 
Jonathan S. Katz   

[Getting Started with Psycopg2: Python's Postgres Adapter](https://www.highgo.ca/2023/10/10/getting-started-with-psycopg2-pythons-postgresql-adapter/) 
Tristen Raab     

Code and Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/dj8tv4lclxd7wc18xufd.jpg)](https://github.com/supabase/pg_jsonschema)  

[pg_jsonschema 0.2: JSON Schema Validation Extension](https://github.com/supabase/pg_jsonschema) — Postgres’s support for JSON / JSONB columns is second to none, but what if you want to _validate_ the structure of JSON data? _JSON Schema_ provides a way to define JSON-based formats and this extension lets you verify documents against them. 

Supabase   

[Payload 2.0: Headless Node.js CMS, Now Supporting Postgres](https://payloadcms.com/blog/payload-2-0) — There’s much to like about Payload if you need a Node-based headless CMS including a customizable React-based admin system, GraphQL or REST APIs, flexible auth and file upload systems, etc. v2.0's headline feature is the introduction of Postgres support (it exclusively used MongoDB before). 

James Mikrut   

- [Schemalint 1.0.4](https://github.com/kristiandupont/schemalint) – A linter for Postgres schemas.
- [tbls 1.70.0](https://github.com/k1LoW/tbls) – Auto document a database in Markdown format.
- [PgTyped 2.3](https://github.com/adelsz/pgtyped/releases/tag/v2.3.0) – Raw SQL in TypeScript, but with type safety.    

**Got a new email?** You can [change your address here](https://postgresweekly.com/edit_subscription/*|UID|*). 

--- 

**Bored of us?** [Click here to stop getting Postgres Weekly](https://postgresweekly.com/leave/*|UID|*). 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada. 

[Stop getting this newsletter](https://postgresweekly.com/leave/*|UID|*).
