Package org.apache.lucene.search.join

# Class BlockJoinSelector

java.lang.Object
org.apache.lucene.search.join.BlockJoinSelector

public class BlockJoinSelector extends Object
Select a value from a block of documents.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`BlockJoinSelector.Type`
Type of selection to perform.

## Method Summary

Modifier and Type
Method
Description
`protected static BitSetIterator`
`toIter(BitSet children)`
creates an iterator for the given bitset
`static NumericDocValues`
`wrap(NumericDocValues values, BlockJoinSelector.Type selection, BitSet parents, DocIdSetIterator children)`
Wraps the provided `NumericDocValues`, iterating over only child documents, in order to only select one value per parent among its `children` using the configured `selection` type.
`static SortedDocValues`
`wrap(SortedDocValues values, BlockJoinSelector.Type selection, BitSet parents, DocIdSetIterator children)`
Wraps the provided `SortedDocValues` in order to only select one value per parent among its `children` using the configured `selection` type.
`static NumericDocValues`
`wrap(SortedNumericDocValues sortedNumerics, BlockJoinSelector.Type selection, BitSet parents, DocIdSetIterator children)`
Wraps the provided `SortedNumericDocValues` in order to only select one value per parent among its `children` using the configured `selection` type.
`static SortedDocValues`
`wrap(SortedSetDocValues sortedSet, BlockJoinSelector.Type selection, BitSet parents, DocIdSetIterator children)`
Wraps the provided `SortedSetDocValues` in order to only select one value per parent among its `children` using the configured `selection` type.
`static Bits`
`wrap(Bits docsWithValue, BitSet parents, BitSet children)`
Return a `Bits` instance that returns true if, and only if, any of the children of the given parent document has a value.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### wrap

public static Bits wrap(Bits docsWithValue, BitSet parents, BitSet children)
Return a `Bits` instance that returns true if, and only if, any of the children of the given parent document has a value.

### wrap

public static SortedDocValues wrap(SortedSetDocValues sortedSet, BlockJoinSelector.Type selection, BitSet parents, DocIdSetIterator children)
Wraps the provided `SortedSetDocValues` in order to only select one value per parent among its `children` using the configured `selection` type.

### wrap

public static SortedDocValues wrap(SortedDocValues values, BlockJoinSelector.Type selection, BitSet parents, DocIdSetIterator children)
Wraps the provided `SortedDocValues` in order to only select one value per parent among its `children` using the configured `selection` type.

### toIter

protected static BitSetIterator toIter(BitSet children)
creates an iterator for the given bitset

### wrap

public static NumericDocValues wrap(SortedNumericDocValues sortedNumerics, BlockJoinSelector.Type selection, BitSet parents, DocIdSetIterator children)
Wraps the provided `SortedNumericDocValues` in order to only select one value per parent among its `children` using the configured `selection` type.

### wrap

public static NumericDocValues wrap(NumericDocValues values, BlockJoinSelector.Type selection, BitSet parents, DocIdSetIterator children)
Wraps the provided `NumericDocValues`, iterating over only child documents, in order to only select one value per parent among its `children` using the configured `selection` type.