Full-text searching: why Haystack instead of PostgreSQL?

I've been asked to give a presentation on a recent migration from MMv2 to MMv3 and one of the items in my notes is the question about why Haystack is used for full-text searching instead of PostgreSQL?
Can someone shed some light on that decision?
Thanks

Haystack supports multiple backends https://django-haystack.readthedocs.io/en/master/backend_support.html
- Solr
- ElasticSearch
- Whoosh
- Xapian
You should rephrase the question to something like "Why ElasticSearch instead of PostgreSQL?" And the answer: ElasticSearch is a focused, purpose-built, search engine with better performance for that very specific task. Right?

On 6/10/25 02:33, admin@bclug.ca wrote:
I've been asked to give a presentation on a recent migration from MMv2 to MMv3 and one of the items in my notes is the question about why Haystack is used for full-text searching instead of PostgreSQL?
Can someone shed some light on that decision?
The people who developed HyperKitty are no longer actively involved with Mailman and I can't speak with any authority about their design decisions.
That said, both Django and Mailman core support multiple databases including PostgreSQL, MariaDB, MySQL, Oracle and SQLite whereas Django's full text search relies on PostgreSQL specific features and without some custom implementation, which may not even be possible, would not allow other DBMs.
Haystack on the other hand provides a unified API that works with multiple backends. As far as I know, no one has developed a Haystack backend for PostgreSQL full text search, but as Sam notes in another reply, there are supported backends for Solr, ElasticSearch, Whoosh and Xapian.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
participants (3)
-
admin@bclug.ca
-
Mark Sapiro
-
Sam Darwin