Package org.apache.lucene.analysis.custom

# Class CustomAnalyzer.Builder

java.lang.Object
org.apache.lucene.analysis.custom.CustomAnalyzer.Builder

Enclosing class:
  `CustomAnalyzer`

public static final class CustomAnalyzer.Builder extends Object
Builder for `CustomAnalyzer`.

See Also:
  - `CustomAnalyzer.builder()`
  - `CustomAnalyzer.builder(Path)`
  - `CustomAnalyzer.builder(ResourceLoader)`

## Method Summary

Modifier and Type
Method
Description
`CustomAnalyzer.Builder`
`addCharFilter(Class<? extends CharFilterFactory> factory, String... params)`
Adds the given char filter.
`CustomAnalyzer.Builder`
`addCharFilter(Class<? extends CharFilterFactory> factory, Map<String,String> params)`
Adds the given char filter.
`CustomAnalyzer.Builder`
`addCharFilter(String name, String... params)`
Adds the given char filter.
`CustomAnalyzer.Builder`
`addCharFilter(String name, Map<String,String> params)`
Adds the given char filter.
`CustomAnalyzer.Builder`
`addTokenFilter(Class<? extends TokenFilterFactory> factory, String... params)`
Adds the given token filter.
`CustomAnalyzer.Builder`
`addTokenFilter(Class<? extends TokenFilterFactory> factory, Map<String,String> params)`
Adds the given token filter.
`CustomAnalyzer.Builder`
`addTokenFilter(String name, String... params)`
Adds the given token filter.
`CustomAnalyzer.Builder`
`addTokenFilter(String name, Map<String,String> params)`
Adds the given token filter.
`CustomAnalyzer`
`build()`
Builds the analyzer.
`CustomAnalyzer.ConditionBuilder`
`when(Class<? extends ConditionalTokenFilterFactory> factory, String... params)`
Add a `ConditionalTokenFilterFactory` to the analysis chain
`CustomAnalyzer.ConditionBuilder`
`when(Class<? extends ConditionalTokenFilterFactory> factory, Map<String,String> params)`
Add a `ConditionalTokenFilterFactory` to the analysis chain
`CustomAnalyzer.ConditionBuilder`
`when(String name, String... params)`
Add a `ConditionalTokenFilterFactory` to the analysis chain
`CustomAnalyzer.ConditionBuilder`
`when(String name, Map<String,String> params)`
Add a `ConditionalTokenFilterFactory` to the analysis chain
`CustomAnalyzer.ConditionBuilder`
`when(ConditionalTokenFilterFactory factory)`
Add a `ConditionalTokenFilterFactory` to the analysis chain
`CustomAnalyzer.ConditionBuilder`
`whenTerm(Predicate<CharSequence> predicate)`
Apply subsequent token filters if the current token's term matches a predicate
`CustomAnalyzer.Builder`
`withDefaultMatchVersion(Version version)`
This match version is passed as default to all tokenizers or filters.
`CustomAnalyzer.Builder`
`withOffsetGap(int offsetGap)`
Sets the offset gap of the analyzer.
`CustomAnalyzer.Builder`
`withPositionIncrementGap(int posIncGap)`
Sets the position increment gap of the analyzer.
`CustomAnalyzer.Builder`
`withTokenizer(Class<? extends TokenizerFactory> factory, String... params)`
Uses the given tokenizer.
`CustomAnalyzer.Builder`
`withTokenizer(Class<? extends TokenizerFactory> factory, Map<String,String> params)`
Uses the given tokenizer.
`CustomAnalyzer.Builder`
`withTokenizer(String name, String... params)`
Uses the given tokenizer.
`CustomAnalyzer.Builder`
`withTokenizer(String name, Map<String,String> params)`
Uses the given tokenizer.

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

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

## Method Details

### withDefaultMatchVersion

public CustomAnalyzer.Builder withDefaultMatchVersion(Version version)
This match version is passed as default to all tokenizers or filters. It is used unless you pass the parameter {code luceneMatchVersion} explicitly. It defaults to undefined, so the underlying factory will (in most cases) use `Version.LATEST`.

### withPositionIncrementGap

public CustomAnalyzer.Builder withPositionIncrementGap(int posIncGap)
Sets the position increment gap of the analyzer. The default is defined in the analyzer base class.

See Also:
  - `Analyzer.getPositionIncrementGap(String)`

### withOffsetGap

public CustomAnalyzer.Builder withOffsetGap(int offsetGap)
Sets the offset gap of the analyzer. The default is defined in the analyzer base class.

See Also:
  - `Analyzer.getOffsetGap(String)`

### withTokenizer

public CustomAnalyzer.Builder withTokenizer(Class<? extends TokenizerFactory> factory, String... params) throws IOException
Uses the given tokenizer.

Parameters:
  `factory` - class that is used to create the tokenizer.
  `params` - a list of factory string params as key/value pairs. The number of parameters must be an even number, as they are pairs.
Throws:
  `IOException`

### withTokenizer

public CustomAnalyzer.Builder withTokenizer(Class<? extends TokenizerFactory> factory, Map<String,String> params) throws IOException
Uses the given tokenizer.

Parameters:
  `factory` - class that is used to create the tokenizer.
  `params` - the map of parameters to be passed to factory. The map must be modifiable.
Throws:
  `IOException`

### withTokenizer

public CustomAnalyzer.Builder withTokenizer(String name, String... params) throws IOException
Uses the given tokenizer.

Parameters:
  `name` - is used to look up the factory with `TokenizerFactory.forName(String, Map)`. The list of possible names can be looked up with `TokenizerFactory.availableTokenizers()`.
  `params` - a list of factory string params as key/value pairs. The number of parameters must be an even number, as they are pairs.
Throws:
  `IOException`

### withTokenizer

public CustomAnalyzer.Builder withTokenizer(String name, Map<String,String> params) throws IOException
Uses the given tokenizer.

Parameters:
  `name` - is used to look up the factory with `TokenizerFactory.forName(String, Map)`. The list of possible names can be looked up with `TokenizerFactory.availableTokenizers()`.
  `params` - the map of parameters to be passed to factory. The map must be modifiable.
Throws:
  `IOException`

### addTokenFilter

public CustomAnalyzer.Builder addTokenFilter(Class<? extends TokenFilterFactory> factory, String... params) throws IOException
Adds the given token filter.

Parameters:
  `factory` - class that is used to create the token filter.
  `params` - a list of factory string params as key/value pairs. The number of parameters must be an even number, as they are pairs.
Throws:
  `IOException`

### addTokenFilter

public CustomAnalyzer.Builder addTokenFilter(Class<? extends TokenFilterFactory> factory, Map<String,String> params) throws IOException
Adds the given token filter.

Parameters:
  `factory` - class that is used to create the token filter.
  `params` - the map of parameters to be passed to factory. The map must be modifiable.
Throws:
  `IOException`

### addTokenFilter

public CustomAnalyzer.Builder addTokenFilter(String name, String... params) throws IOException
Adds the given token filter.

Parameters:
  `name` - is used to look up the factory with `TokenFilterFactory.forName(String, Map)`. The list of possible names can be looked up with `TokenFilterFactory.availableTokenFilters()`.
  `params` - a list of factory string params as key/value pairs. The number of parameters must be an even number, as they are pairs.
Throws:
  `IOException`

### addTokenFilter

public CustomAnalyzer.Builder addTokenFilter(String name, Map<String,String> params) throws IOException
Adds the given token filter.

Parameters:
  `name` - is used to look up the factory with `TokenFilterFactory.forName(String, Map)`. The list of possible names can be looked up with `TokenFilterFactory.availableTokenFilters()`.
  `params` - the map of parameters to be passed to factory. The map must be modifiable.
Throws:
  `IOException`

### addCharFilter

public CustomAnalyzer.Builder addCharFilter(Class<? extends CharFilterFactory> factory, String... params) throws IOException
Adds the given char filter.

Parameters:
  `factory` - class that is used to create the char filter.
  `params` - a list of factory string params as key/value pairs. The number of parameters must be an even number, as they are pairs.
Throws:
  `IOException`

### addCharFilter

public CustomAnalyzer.Builder addCharFilter(Class<? extends CharFilterFactory> factory, Map<String,String> params) throws IOException
Adds the given char filter.

Parameters:
  `factory` - class that is used to create the char filter.
  `params` - the map of parameters to be passed to factory. The map must be modifiable.
Throws:
  `IOException`

### addCharFilter

public CustomAnalyzer.Builder addCharFilter(String name, String... params) throws IOException
Adds the given char filter.

Parameters:
  `name` - is used to look up the factory with `CharFilterFactory.forName(String, Map)`. The list of possible names can be looked up with `CharFilterFactory.availableCharFilters()`.
  `params` - a list of factory string params as key/value pairs. The number of parameters must be an even number, as they are pairs.
Throws:
  `IOException`

### addCharFilter

public CustomAnalyzer.Builder addCharFilter(String name, Map<String,String> params) throws IOException
Adds the given char filter.

Parameters:
  `name` - is used to look up the factory with `CharFilterFactory.forName(String, Map)`. The list of possible names can be looked up with `CharFilterFactory.availableCharFilters()`.
  `params` - the map of parameters to be passed to factory. The map must be modifiable.
Throws:
  `IOException`

### when

public CustomAnalyzer.ConditionBuilder when(String name, String... params) throws IOException
Add a `ConditionalTokenFilterFactory` to the analysis chain

TokenFilters added by subsequent calls to `CustomAnalyzer.ConditionBuilder.addTokenFilter(String, String...)` and related functions will only be used if the current token matches the condition. Consumers must call `CustomAnalyzer.ConditionBuilder.endwhen()` to return to the normal tokenfilter chain once conditional filters have been added

Parameters:
  `name` - is used to look up the factory with `TokenFilterFactory.forName(String, Map)`
  `params` - the parameters to be passed to the factory
Throws:
  `IOException`

### when

public CustomAnalyzer.ConditionBuilder when(String name, Map<String,String> params) throws IOException
Add a `ConditionalTokenFilterFactory` to the analysis chain

TokenFilters added by subsequent calls to `CustomAnalyzer.ConditionBuilder.addTokenFilter(String, String...)` and related functions will only be used if the current token matches the condition. Consumers must call `CustomAnalyzer.ConditionBuilder.endwhen()` to return to the normal tokenfilter chain once conditional filters have been added

Parameters:
  `name` - is used to look up the factory with `TokenFilterFactory.forName(String, Map)`
  `params` - the parameters to be passed to the factory. The map must be modifiable
Throws:
  `IOException`

### when

public CustomAnalyzer.ConditionBuilder when(Class<? extends ConditionalTokenFilterFactory> factory, String... params) throws IOException
Add a `ConditionalTokenFilterFactory` to the analysis chain

TokenFilters added by subsequent calls to `CustomAnalyzer.ConditionBuilder.addTokenFilter(String, String...)` and related functions will only be used if the current token matches the condition. Consumers must call `CustomAnalyzer.ConditionBuilder.endwhen()` to return to the normal tokenfilter chain once conditional filters have been added

Parameters:
  `factory` - class that is used to create the ConditionalTokenFilter
  `params` - the parameters to be passed to the factory
Throws:
  `IOException`

### when

public CustomAnalyzer.ConditionBuilder when(Class<? extends ConditionalTokenFilterFactory> factory, Map<String,String> params) throws IOException
Add a `ConditionalTokenFilterFactory` to the analysis chain

TokenFilters added by subsequent calls to `CustomAnalyzer.ConditionBuilder.addTokenFilter(String, String...)` and related functions will only be used if the current token matches the condition. Consumers must call `CustomAnalyzer.ConditionBuilder.endwhen()` to return to the normal tokenfilter chain once conditional filters have been added

Parameters:
  `factory` - class that is used to create the ConditionalTokenFilter
  `params` - the parameters to be passed to the factory. The map must be modifiable
Throws:
  `IOException`

### when

public CustomAnalyzer.ConditionBuilder when(ConditionalTokenFilterFactory factory)
Add a `ConditionalTokenFilterFactory` to the analysis chain

TokenFilters added by subsequent calls to `CustomAnalyzer.ConditionBuilder.addTokenFilter(String, String...)` and related functions will only be used if the current token matches the condition. Consumers must call `CustomAnalyzer.ConditionBuilder.endwhen()` to return to the normal tokenfilter chain once conditional filters have been added

### whenTerm

public CustomAnalyzer.ConditionBuilder whenTerm(Predicate<CharSequence> predicate)
Apply subsequent token filters if the current token's term matches a predicate

This is the equivalent of:

       when(new ConditionalTokenFilterFactory(Collections.emptyMap()) {
          @Override
          protected ConditionalTokenFilter create(TokenStream input, Function<TokenStream, TokenStream> inner) {
            return new ConditionalTokenFilter(input, inner) {
              CharTermAttribute termAtt = addAttribute(CharTermAttribute.class);
              @Override
              protected boolean shouldFilter() {
                return predicate.test(termAtt);
              }
            };
          }
       });

### build

public CustomAnalyzer build()
Builds the analyzer.