PerFieldAnalyzerWrapper

class PerFieldAnalyzerWrapper(defaultAnalyzer: Analyzer, fieldAnalyzers: Map<String, Analyzer>? = null) : DelegatingAnalyzerWrapper

This analyzer is used to facilitate scenarios where different fields require different analysis techniques. Use the Map argument in PerFieldAnalyzerWrapper to add non-default analyzers for fields.

Example usage:

{@code
Map analyzerPerField = new HashMap<>();
analyzerPerField.put("firstname", new KeywordAnalyzer());
analyzerPerField.put("lastname", new KeywordAnalyzer());

PerFieldAnalyzerWrapper aWrapper =
new PerFieldAnalyzerWrapper(new StandardAnalyzer(version), analyzerPerField);
}

In this example, StandardAnalyzer will be used for all fields except "firstname" and "lastname", for which KeywordAnalyzer will be used.

A PerFieldAnalyzerWrapper can be used like any other analyzer, for both indexing and query parsing.

Since

3.1

Constructors

Link copied to clipboard
constructor(defaultAnalyzer: Analyzer, fieldAnalyzers: Map<String, Analyzer>? = null)
constructor(defaultAnalyzer: Analyzer)

Constructs with default analyzer.

Properties

Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
open override fun close()
Link copied to clipboard
open override fun getOffsetGap(fieldName: String?): Int
Link copied to clipboard
open override fun getPositionIncrementGap(fieldName: String?): Int
Link copied to clipboard
fun normalize(fieldName: String, text: String): BytesRef
Link copied to clipboard
fun tokenStream(fieldName: String, text: String): TokenStream
fun tokenStream(fieldName: String, reader: Reader): TokenStream
Link copied to clipboard
open override fun toString(): String