Beyond faceted search
summary
Builds a search engine that turns a JSON-based DSL into Django ORM queries, using model mixins to declare searchable models and a recursive algorithm that emits Q objects and F references to combine conditions. Proof of concept runs over medium datasets (cites ~12 million companies and ~30 million directors at scale) by translating branches into a subquery-per-branch pattern, works functionally but hits performance limits so results are cached, queries run on a read replica behind pgbouncer and a 90s statement timeout.
AI-written summary · about
chapters (11)
- 0:00Introduction and setup
- 1:50About Bohurst and Brewhurst
- 3:34Search challenges in complex data
- 6:43Query representation approach
- 11:14Frontend query builder overview
- 14:05Searchable models and mixins
- 15:49Branch and leaf logic
- 21:05Generating query sets
- 23:32Query execution and limitations
- 26:15Performance and scalability
- 28:00Q&A
related talks
29mMaking smarter queries with advanced ORM resources
25mBuilding effective Django queries with expressions
24mSearch From the Ground Up
26mA pythonic full-text search
30mFrom basic distance search to a complex multi criteria search
39mdjango-rdflib and postgresql - the best of both worlds
57mUnlocking the Power of Hybrid Search: A Deep Dive into Python-Powered Precision
35mBeyond the ORM: from Postgres to OpenSearch with Andrew Mshar
