I want realize multiple joins in lucene. Considering the complexy of joining i want i will skip index join.
first strategy : Query-time joins String fromField = "from"; // Name of the from field boolean multipleValuesPerDocument = false; // Set only yo true in the case when your fromField has multiple values per document in your index String toField = "to"; // Name of the to field ScoreMode scoreMode = ScoreMode.Max // Defines how the scores are translated into the other side of the join. Query fromQuery = new TermQuery(new Term("content", searchTerm)); // Query executed to collect from values to join to the to values Query joinQuery = JoinUtil.createJoinQuery(fromField, multipleValuesPerDocument, toField, fromQuery, fromSearcher, scoreMode); TopDocs topDocs = toSearcher.search(joinQuery, 10); // Note: toSearcher can be the same as the fromSearcher // Render topDocs... *First question is: * *it possible to use joinedQuery in nested way(if i have 2 joins to 2 different entities for example)? * *main query -> nested inside first join -> nested in the second join,...* Query-custom joins I could realize a mini class Loader making joins: 1) every entity is a different class 2) by reflection if the getter is class ==entity .... Loader load document with the key saved in parent object. *second question:* *this solution is essentially similar to how it works the query times or not (so similar performance)?*