## org.apache.lucene.analysis.miscellaneous
Class PerFieldAnalyzerWrapper

    java.lang.Object
      org.apache.lucene.analysis.Analyzer
          org.apache.lucene.analysis.AnalyzerWrapper
              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.