The document discusses different approaches for modeling relationships between documents in Lucene and Elasticsearch, including index-time and query-time joins. Index-time joins use block indexing to store related documents together, allowing nested queries, filters and facets in Elasticsearch. Query-time joins do not require block indexing and collect matching child documents during query execution. Both Lucene and Elasticsearch support various parent-child and field-based query-time join approaches.