Class PerFieldAnalyzerWrapper
This analyzer is used to facilitate scenarios where different fields Require different analysis techniques. Use the Map argument in PerFieldAnalyzerWrapper(Analyzer, IDictionary<string, Analyzer>) to add non-default analyzers for fields.
Example usage:
IDictionary<string, Analyzer> analyzerPerField = new Dictionary<string, Analyzer>();
analyzerPerField["firstname"] = new KeywordAnalyzer();
analyzerPerField["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.
Implements
Inherited Members
Namespace: Lucene.Net.Analysis.Miscellaneous
Assembly: Lucene.Net.Analysis.Common.dll
Syntax
public sealed class PerFieldAnalyzerWrapper : AnalyzerWrapper, IDisposable
Constructors
PerFieldAnalyzerWrapper(Analyzer)
Constructs with default analyzer.
Declaration
public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer)
Parameters
Type | Name | Description |
---|---|---|
Analyzer | defaultAnalyzer | Any fields not specifically defined to use a different analyzer will use the one provided here. |
PerFieldAnalyzerWrapper(Analyzer, IDictionary<string, Analyzer>)
Constructs with default analyzer and a map of analyzers to use for specific fields.
The type of IDictionary<TKey, TValue> supplied will determine the type of behavior.Dictionary<TKey, TValue> | General use. null keys are not supported. |
SortedDictionary<TKey, TValue> | Use when sorted keys are required. null keys are not supported. |
J2N.Collections.Generic.Dictionary<TKey, TValue> | Similar behavior as Dictionary<TKey, TValue>. null keys are supported. |
J2N.Collections.Generic.SortedDictionary<TKey, TValue> | Use when sorted keys are required. null keys are supported. |
J2N.Collections.Generic.LinkedDictionary<TKey, TValue> | Use when insertion order must be preserved (Dictionary<TKey, TValue> preserves insertion
order only until items are removed). null keys are supported. |
Declaration
public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer, IDictionary<string, Analyzer> fieldAnalyzers)
Parameters
Type | Name | Description |
---|---|---|
Analyzer | defaultAnalyzer | Any fields not specifically defined to use a different analyzer will use the one provided here. |
IDictionary<string, Analyzer> | fieldAnalyzers | A IDictionary<TKey, TValue> (String field name to the Analyzer) to be used for those fields. |
Methods
GetWrappedAnalyzer(string)
Retrieves the wrapped Lucene.Net.Analysis.Analyzer appropriate for analyzing the field with the given name
Declaration
protected override Analyzer GetWrappedAnalyzer(string fieldName)
Parameters
Type | Name | Description |
---|---|---|
string | fieldName | Name of the field which is to be analyzed |
Returns
Type | Description |
---|---|
Analyzer | Lucene.Net.Analysis.Analyzer for the field with the given name. Assumed to be non-null |
Overrides
ToString()
Returns a string that represents the current object.
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
string | A string that represents the current object. |