Please oh please let GCP add this to the supported managed Postgres extensions...
A little birdie told me that efforts are underway to support the extension in Alloy, at least!
Show HN: Postgres extension for BM25 relevance-ranked full-text search
41–50 of 75 posts
Re: Show HN: Postgres extension for BM25 relevance-ranked full-text search
#42also shoutout to tj for being super responsive on github issues!
Re: Show HN: Postgres extension for BM25 relevance-ranked full-text search
#43[flagged]
Re: Show HN: Postgres extension for BM25 relevance-ranked full-text search
#44Re: Show HN: Postgres extension for BM25 relevance-ranked full-text search
#45Re: Show HN: Postgres extension for BM25 relevance-ranked full-text search
#46P.S. been shipping it for a while https://www.freshports.org/databases/pg_textsearch/ :)
Re: Show HN: Postgres extension for BM25 relevance-ranked full-text search
#47Re: Show HN: Postgres extension for BM25 relevance-ranked full-text search
#48This looks like a great addition to the Postgres ecosystem. When adding specialized extensions like this, it's always worth keeping an eye on how they impact overall system performance, especially memory usage and lock contention as the dataset grows. For anyone testing this out, I'd recommend using an open-source tool like *pgmetrics* ( https://pgmetrics.io ) to get a baseline and then monitor how the new indexes an…
Re: Show HN: Postgres extension for BM25 relevance-ranked full-text search
#49Very exciting! Congrats on the release, this will be a huge benefit to all folks building RAG/rerank systems on top of Postgres. Looking forward to testing it out myself.
It's also a great way to combine fuzzy search with stricter phrase or term matching. As opposed to fiddling with boosts or otherwise trying to combine results.
Elastic has a decent explanation of how RRF works.
https://www.elastic.co/docs/reference/elasticsearch/rest-api...
Simple enough that you can just hack this into a select statement. Or do some easy post processing.
My own querylight-ts library implements bm25, vector search, rrf and more for in browser search. I've been experimenting with that in the last few weeks. Very effective if you want to add a bit more advanced search to your website. Having decent bm25 indexing in postgresql opens a lot of new possibilities. They already had vector search and trigram support. And of course traditional wild card based matching, normalization functions, etc. Bm25 adds a big missing piece.
There's still value to having your search index separated from your main datastore. What you query is not necessarily what you store. That's why people have ETL pipelines to extract, transform (crucial) and load. Even if your search index is going to be postgresql, you might want to think about how to pump data around and what happens when you change your mind about how you want to query and index your data. Migrating your single source of truth is probably going to be an anti pattern there. Honestly, ETL is the one thing I see a lot of companies architect wrong when they consult me on how to improve/fix their search solutions. Classic probing question "When is the last time you reindexed your data?". If the answer is "a long time ago", they have no effective ETL capability basically. That's usually the first problem to sort out with clients like that. Even if it's just a separate table in the same DB, how you rebuild that is crucial to experimenting with new querying and indexing strategies.