Package org.apache.lucene.analysis.commongrams

# Class CommonGramsQueryFilter

java.lang.Object
org.apache.lucene.util.AttributeSource
org.apache.lucene.analysis.TokenStream
org.apache.lucene.analysis.TokenFilter
org.apache.lucene.analysis.commongrams.CommonGramsQueryFilter

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`, `Unwrappable<TokenStream>`

public final class CommonGramsQueryFilter extends TokenFilter
Wrap a CommonGramsFilter optimizing phrase queries by only returning single words when they are not a member of a bigram.

Example:

- query input to CommonGramsFilter: "the rain in spain falls mainly"
- output of CommomGramsFilter/input to CommonGramsQueryFilter: |"the, "the-rain"|"rain" "rain-in"|"in, "in-spain"|"spain"|"falls"|"mainly"
- output of CommonGramsQueryFilter:"the-rain", "rain-in" ,"in-spain", "falls", "mainly"

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.lucene.util.AttributeSource

`AttributeSource.State`

## Field Summary

### Fields inherited from class org.apache.lucene.analysis.TokenFilter

`input`

### Fields inherited from class org.apache.lucene.analysis.TokenStream

`DEFAULT_TOKEN_ATTRIBUTE_FACTORY`

## Constructor Summary

Constructors
Constructor
Description
`CommonGramsQueryFilter(CommonGramsFilter input)`
Constructs a new CommonGramsQueryFilter based on the provided CommomGramsFilter

## Method Summary

Modifier and Type
Method
Description
`boolean`
`incrementToken()`
Output bigrams whenever possible to optimize queries.
`boolean`
`isGramType()`
Convenience method to check if the current type is a gram type
`void`
`reset()`

### Methods inherited from class org.apache.lucene.analysis.TokenFilter

`close, end, unwrap`

### Methods inherited from class org.apache.lucene.util.AttributeSource

`addAttribute, addAttributeImpl, captureState, clearAttributes, cloneAttributes, copyTo, endAttributes, equals, getAttribute, getAttributeClassesIterator, getAttributeFactory, getAttributeImplsIterator, hasAttribute, hasAttributes, hashCode, reflectAsString, reflectWith, removeAllAttributes, restoreState, toString`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### CommonGramsQueryFilter

public CommonGramsQueryFilter(CommonGramsFilter input)
Constructs a new CommonGramsQueryFilter based on the provided CommomGramsFilter

Parameters:
  `input` - CommonGramsFilter the QueryFilter will use

## Method Details

### reset

public void reset() throws IOException

Overrides:
  `reset` in class `TokenFilter`
Throws:
  `IOException`

### incrementToken

public boolean incrementToken() throws IOException
Output bigrams whenever possible to optimize queries. Only output unigrams when they are not a member of a bigram. Example:

- input: "the rain in spain falls mainly"
- output:"the-rain", "rain-in" ,"in-spain", "falls", "mainly"

Specified by:
  `incrementToken` in class `TokenStream`
Throws:
  `IOException`

### isGramType

public boolean isGramType()
Convenience method to check if the current type is a gram type

Returns:
  `true` if the current type is a gram type, `false` otherwise