org.apache.lucene.analysis

Class PerFieldAnalyzerWrapper


public class PerFieldAnalyzerWrapper
extends Analyzer

This analyzer is used to facilitate scenarios where different fields require different analysis techniques. Use addAnalyzer(String,Analyzer) to add a non-default analyzer on a field name basis.

Example usage:

   PerFieldAnalyzerWrapper aWrapper =
      new PerFieldAnalyzerWrapper(new StandardAnalyzer());
   aWrapper.addAnalyzer("firstname", new KeywordAnalyzer());
   aWrapper.addAnalyzer("lastname", new KeywordAnalyzer());
 

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.

Constructor Summary

PerFieldAnalyzerWrapper(Analyzer defaultAnalyzer)
Constructs with default analyzer.

Method Summary

void
addAnalyzer(String fieldName, Analyzer analyzer)
Defines an analyzer to use for the specified field.
String
toString()
TokenStream
tokenStream(String fieldName, Reader reader)

Methods inherited from class org.apache.lucene.analysis.Analyzer

getPositionIncrementGap, tokenStream, tokenStream

Constructor Details

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.

Method Details

addAnalyzer

public void addAnalyzer(String fieldName,
                        Analyzer analyzer)
Defines an analyzer to use for the specified field.
Parameters:
fieldName - field name requiring a non-default analyzer
analyzer - non-default analyzer to use for field

toString

public String toString()

tokenStream

public TokenStream tokenStream(String fieldName,
                               Reader reader)
Overrides:
tokenStream in interface Analyzer

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