Joining in Lucene
summary
Shows how Lucene/Solr implement joins by using block indexing and parent-child pointers to represent products and product_items, with query-time collectors that aggregate child hits into parent documents and return cheapest-price parents. Demonstrates a working ecommerce example, requires contiguous index ordering and special collectors (normal search API won’t work), has limits for real-time sharding and scoring, and reports join queries run roughly 2–5x faster than doing external denormalize-and-join pipelines.
AI-written summary · about
chapters (10)
- 0:00Introduction to Lucene joining
- 1:09Index-time joining in Lucene
- 3:41Block indexing for relationships
- 7:14Query-time joining process
- 10:24Live implementation of joining
- 14:41Performance benefits of joining
- 16:52Real-time sharding considerations
- 18:22Index optimization for joining
- 19:04Collector for grouped results
- 20:48Key takeaways and Q&A
related talks
01h 00m50 Shades of Join in Apache Lucene
38mAccelerating Query Performance in CrateDB
41mDeep dive into an Elasticsearch plugin for query-time joins
25mApache Lucene: From Text Indexing to Artificial Intelligence
50mAnalytics and Graph Traversal with Solr
37mAlgorithms & data-structures that power Lucene & ElasticSearch
30mCaching for Speed: Practical Performance Optimization in OpenSearch & Lucene
36mSolrCloud and NoSQL
