Class 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"
  • 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