public class ToParentBlockJoinQuery extends Query
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.
Constructor and Description |
---|
ToParentBlockJoinQuery(Query childQuery,
BitSetProducer parentsFilter,
ScoreMode scoreMode)
Create a ToParentBlockJoinQuery.
|
Modifier and Type | Method and Description |
---|---|
Weight |
createWeight(IndexSearcher searcher,
boolean needsScores) |
boolean |
equals(Object other) |
Query |
getChildQuery()
Return our child query.
|
int |
hashCode() |
Query |
rewrite(IndexReader reader) |
String |
toString(String field) |
classHash, sameClassAs, toString
public ToParentBlockJoinQuery(Query childQuery, BitSetProducer parentsFilter, ScoreMode scoreMode)
childQuery
- Query matching child documents.parentsFilter
- Filter identifying the parent documents.scoreMode
- How to aggregate multiple child scores
into a single parent score.public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException
createWeight
in class Query
IOException
public Query getChildQuery()
public Query rewrite(IndexReader reader) throws IOException
rewrite
in class Query
IOException
Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.