CommonGramsQueryFilter (Lucene 10.5.0 common API)
Description: declaration: package: org.apache.lucene.analysis.commongrams, class: CommonGramsQueryFilter

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