Lucene's document model Block join query Query time joining Nested query Top children query
In the real world data isn’t flat. Data is often modelled into complex models. Lucene is document oriented and doesn’t support relations natively. The only way you could index this data is by de-normalizing the relations in a document with many fields and execute subsequent queries. Subsequent queries can be expensive and with de-normalizing data gets duplicated. This isn’t always ideal. For some time now Lucene, Elasticsearch and Solr provide features that allow you to search in parent child like manner. In this talk we’ll dive into Lucene’s parent child search capabilities and Elasticsearch’s extensions on top of that.