org.apache.lucene.analysis.miscellaneous
Class PerFieldAnalyzerWrapper

java.lang.Object
  extended by org.apache.lucene.analysis.Analyzer
      extended by org.apache.lucene.analysis.AnalyzerWrapper
          extended by org.apache.lucene.analysis.miscellaneous.PerFieldAnalyzerWrapper
All Implemented Interfaces:
Closeable

public final class PerFieldAnalyzerWrapper
extends AnalyzerWrapper

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

Example usage:

 Map<String,Analyzer> analyzerPerField = new HashMap<String,Analyzer>();
 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.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.lucene.analysis.Analyzer
Analyzer.GlobalReuseStrategy, Analyzer.PerFieldReuseStrategy, Analyzer.ReuseStrategy, Analyzer.TokenStreamComponents
 
Constructor Summary
PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer)
          Constructs with default analyzer.
PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer, Map<String,Analyzer> fieldAnalyzers)
          Constructs with default analyzer and a map of analyzers to use for specific fields.
 
Method Summary
protected  Analyzer getWrappedAnalyzer(String fieldName)
           
 String toString()
           
protected  Analyzer.TokenStreamComponents wrapComponents(String fieldName, Analyzer.TokenStreamComponents components)
           
 
Methods inherited from class org.apache.lucene.analysis.AnalyzerWrapper
createComponents, getOffsetGap, getPositionIncrementGap, initReader
 
Methods inherited from class org.apache.lucene.analysis.Analyzer
close, tokenStream
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PerFieldAnalyzerWrapper

public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer)
Constructs with default analyzer.

Parameters:
defaultAnalyzer - Any fields not specifically defined to use a different analyzer will use the one provided here.

PerFieldAnalyzerWrapper

public PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer,
                               Map<String,Analyzer> fieldAnalyzers)
Constructs with default analyzer and a map of analyzers to use for specific fields.

Parameters:
defaultAnalyzer - Any fields not specifically defined to use a different analyzer will use the one provided here.
fieldAnalyzers - a Map (String field name to the Analyzer) to be used for those fields
Method Detail

getWrappedAnalyzer

protected Analyzer getWrappedAnalyzer(String fieldName)
Specified by:
getWrappedAnalyzer in class AnalyzerWrapper

wrapComponents

protected Analyzer.TokenStreamComponents wrapComponents(String fieldName,
                                                        Analyzer.TokenStreamComponents components)
Specified by:
wrapComponents in class AnalyzerWrapper

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.