Class MockAnalyzer

  • All Implemented Interfaces:
    Closeable, AutoCloseable

    public final class MockAnalyzer
    extends org.apache.lucene.analysis.Analyzer
    Analyzer for testing

    This analyzer is a replacement for Whitespace/Simple/KeywordAnalyzers for unit tests. If you are testing a custom component such as a queryparser or analyzer-wrapper that consumes analysis streams, its a great idea to test it with this analyzer instead. MockAnalyzer has the following behavior:

    • By default, the assertions in MockTokenizer are turned on for extra checks that the consumer is consuming properly. These checks can be disabled with setEnableChecks(boolean).
    • Payload data is randomly injected into the stream for more thorough testing of payloads.
    See Also:
    MockTokenizer
    • Constructor Detail

      • MockAnalyzer

        public MockAnalyzer​(Random random,
                            int pattern,
                            boolean lowerCase,
                            org.apache.lucene.analysis.CharArraySet filter,
                            boolean enablePositionIncrements)
        Creates a new MockAnalyzer.
        Parameters:
        random - Random for payloads behavior
        pattern - pattern constant describing how tokenization should happen
        lowerCase - true if the tokenizer should lowercase terms
        filter - CharArraySet describing how terms should be filtered (set of stopwords, etc)
        enablePositionIncrements - true if position increments should reflect filtered terms.
    • Method Detail

      • tokenStream

        public org.apache.lucene.analysis.TokenStream tokenStream​(String fieldName,
                                                                  Reader reader)
        Specified by:
        tokenStream in class org.apache.lucene.analysis.Analyzer
      • reusableTokenStream

        public org.apache.lucene.analysis.TokenStream reusableTokenStream​(String fieldName,
                                                                          Reader reader)
                                                                   throws IOException
        Overrides:
        reusableTokenStream in class org.apache.lucene.analysis.Analyzer
        Throws:
        IOException
      • setPositionIncrementGap

        public void setPositionIncrementGap​(int positionIncrementGap)
      • getPositionIncrementGap

        public int getPositionIncrementGap​(String fieldName)
        Overrides:
        getPositionIncrementGap in class org.apache.lucene.analysis.Analyzer
      • setEnableChecks

        public void setEnableChecks​(boolean enableChecks)
        Toggle consumer workflow checking: if your test consumes tokenstreams normally you should leave this enabled.
      • setMaxTokenLength

        public void setMaxTokenLength​(int length)
        Toggle maxTokenLength for MockTokenizer