view src/goodjava/lucene/api/FieldAnalyzer.java @ 1490:9a2a2181a58f

FixedLengthInputStream
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 02 May 2020 20:42:28 -0600
parents 3ab0d043370f
children
line wrap: on
line source

package goodjava.lucene.api;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.AnalyzerWrapper;
import org.apache.lucene.analysis.core.KeywordAnalyzer;


public final class FieldAnalyzer extends AnalyzerWrapper {
	private static final Analyzer defaultAnalyzer = new KeywordAnalyzer();
	private final Map<String,Analyzer> fieldAnalyzers = new ConcurrentHashMap<String,Analyzer>();

	public void add(String fieldName,Analyzer analyzer) {
		fieldAnalyzers.put(fieldName,analyzer);
	}

	public boolean isAdded(String fieldName) {
		return fieldAnalyzers.containsKey(fieldName);
	}

	protected Analyzer getWrappedAnalyzer(String fieldName) {
		Analyzer analyzer = fieldAnalyzers.get(fieldName);
/*
		if( analyzer == null )
			throw new RuntimeException("no analyzer for field: "+fieldName);
		return analyzer;
*/
		return analyzer!=null ? analyzer : defaultAnalyzer;
	}
}