Class ToParentBlockJoinQuery

java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.search.join.ToParentBlockJoinQuery

public class ToParentBlockJoinQuery extends org.apache.lucene.search.Query
This query requires that you index children and parent docs as a single block, using the IndexWriter.addDocuments() or IndexWriter.updateDocuments() API. In each block, the child documents must appear first, ending with the parent document. At search time you provide a Filter identifying the parents, however this Filter must provide an BitSet per sub-reader.

Once the block index is built, use this query to wrap any sub-query matching only child docs and join matches in that child document space up to the parent document space. You can then use this Query as a clause with other queries in the parent document space.

See ToChildBlockJoinQuery if you need to join in the reverse order.

The child documents must be orthogonal to the parent documents: the wrapped child query must never return a parent document.

See org.apache.lucene.search.join for an overview.

WARNING: This API is experimental and might change in incompatible ways in the next release.
  • Constructor Summary

    Constructors
    Constructor
    Description
    ToParentBlockJoinQuery(org.apache.lucene.search.Query childQuery, BitSetProducer parentsFilter, ScoreMode scoreMode)
    Create a ToParentBlockJoinQuery.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.lucene.search.Weight
    createWeight(org.apache.lucene.search.IndexSearcher searcher, org.apache.lucene.search.ScoreMode weightScoreMode, float boost)
     
    boolean
    equals(Object other)
     
    org.apache.lucene.search.Query
    Return our child query.
    int
     
    org.apache.lucene.search.Query
    rewrite(org.apache.lucene.index.IndexReader reader)
     
     
    void
    visit(org.apache.lucene.search.QueryVisitor visitor)
     

    Methods inherited from class org.apache.lucene.search.Query

    classHash, sameClassAs, toString

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • ToParentBlockJoinQuery

      public ToParentBlockJoinQuery(org.apache.lucene.search.Query childQuery, BitSetProducer parentsFilter, ScoreMode scoreMode)
      Create a ToParentBlockJoinQuery.
      Parameters:
      childQuery - Query matching child documents.
      parentsFilter - Filter identifying the parent documents.
      scoreMode - How to aggregate multiple child scores into a single parent score.
  • Method Details

    • visit

      public void visit(org.apache.lucene.search.QueryVisitor visitor)
      Specified by:
      visit in class org.apache.lucene.search.Query
    • createWeight

      public org.apache.lucene.search.Weight createWeight(org.apache.lucene.search.IndexSearcher searcher, org.apache.lucene.search.ScoreMode weightScoreMode, float boost) throws IOException
      Overrides:
      createWeight in class org.apache.lucene.search.Query
      Throws:
      IOException
    • getChildQuery

      public org.apache.lucene.search.Query getChildQuery()
      Return our child query.
    • rewrite

      public org.apache.lucene.search.Query rewrite(org.apache.lucene.index.IndexReader reader) throws IOException
      Overrides:
      rewrite in class org.apache.lucene.search.Query
      Throws:
      IOException
    • toString

      public String toString(String field)
      Specified by:
      toString in class org.apache.lucene.search.Query
    • equals

      public boolean equals(Object other)
      Specified by:
      equals in class org.apache.lucene.search.Query
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class org.apache.lucene.search.Query