Package org.apache.lucene.sandbox.search

# Class PhraseWildcardQuery.Builder

java.lang.Object
org.apache.lucene.sandbox.search.PhraseWildcardQuery.Builder

Enclosing class:
  `PhraseWildcardQuery`

public static class PhraseWildcardQuery.Builder extends Object
Builds a `PhraseWildcardQuery`.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final String`
`field`
`protected final int`
`maxMultiTermExpansions`
`protected final List<PhraseWildcardQuery.PhraseTerm>`
`phraseTerms`
`protected final boolean`
`segmentOptimizationEnabled`
`protected int`
`slop`

## Constructor Summary

Constructors
Constructor
Description
`Builder(String field, int maxMultiTermExpansions)`
`Builder(String field, int maxMultiTermExpansions, boolean segmentOptimizationEnabled)`

## Method Summary

Modifier and Type
Method
Description
`PhraseWildcardQuery.Builder`
`addMultiTerm(MultiTermQuery multiTermQuery)`
Adds a multi-term at the next position in the phrase.
`PhraseWildcardQuery.Builder`
`addTerm(Term term)`
Adds a single term at the next position in the phrase.
`PhraseWildcardQuery.Builder`
`addTerm(BytesRef termBytes)`
Adds a single term at the next position in the phrase.
`PhraseWildcardQuery`
`build()`
Builds a `PhraseWildcardQuery`.
`PhraseWildcardQuery.Builder`
`setSlop(int slop)`
Sets the phrase slop.

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

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

## Field Details

### field

protected final String field

### phraseTerms

protected final List<PhraseWildcardQuery.PhraseTerm> phraseTerms

### slop

protected int slop

### maxMultiTermExpansions

protected final int maxMultiTermExpansions

### segmentOptimizationEnabled

protected final boolean segmentOptimizationEnabled

## Constructor Details

### Builder

public Builder(String field, int maxMultiTermExpansions)

Parameters:
  `field` - The query field.
  `maxMultiTermExpansions` - The maximum number of expansions across all multi-terms and across all segments. It counts expansions for each segments individually, that allows optimizations per segment and unused expansions are credited to next segments. This is different from `MultiPhraseQuery` and `SpanMultiTermQueryWrapper` which have an expansion limit per multi-term.

### Builder

public Builder(String field, int maxMultiTermExpansions, boolean segmentOptimizationEnabled)

Parameters:
  `field` - The query field.
  `maxMultiTermExpansions` - The maximum number of expansions across all multi-terms and across all segments. It counts expansions for each segments individually, that allows optimizations per segment and unused expansions are credited to next segments. This is different from `MultiPhraseQuery` and `SpanMultiTermQueryWrapper` which have an expansion limit per multi-term.
  `segmentOptimizationEnabled` - Whether to enable the segment optimization which consists in ignoring a segment for further analysis as soon as a term is not present inside it. This optimizes the query execution performance but changes the scoring. The result ranking is preserved.

## Method Details

### addTerm

public PhraseWildcardQuery.Builder addTerm(BytesRef termBytes)
Adds a single term at the next position in the phrase.

### addTerm

public PhraseWildcardQuery.Builder addTerm(Term term)
Adds a single term at the next position in the phrase.

### addMultiTerm

public PhraseWildcardQuery.Builder addMultiTerm(MultiTermQuery multiTermQuery)
Adds a multi-term at the next position in the phrase. Any of the terms returned by the provided `MultiTermQuery` enumeration may match (expansion as a disjunction).

### setSlop

public PhraseWildcardQuery.Builder setSlop(int slop)
Sets the phrase slop.

### build

public PhraseWildcardQuery build()
Builds a `PhraseWildcardQuery`.