view src/goodjava/lucene/api/MultiFieldParserConfig.java @ 1824:92860f763715

smtpcorp change
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 19 Aug 2024 19:34:24 -0400
parents f48db13ae2d9
children
line wrap: on
line source

package goodjava.lucene.api;

import java.util.Map;
import java.util.Collections;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.core.KeywordAnalyzer;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.util.Version;
import goodjava.lucene.queryparser.MultiFieldParser;
import goodjava.lucene.queryparser.FieldParser;
import goodjava.lucene.queryparser.StringFieldParser;


public class MultiFieldParserConfig implements GoodIndexWriterConfig {
	private final Version luceneVersion;
	private final MultiFieldParser mfp;

	public MultiFieldParserConfig(Version luceneVersion,MultiFieldParser mfp) {
		this.luceneVersion = luceneVersion;
		this.mfp = mfp;
	}

	@Override public IndexWriterConfig newLuceneConfig() {
		return new IndexWriterConfig(luceneVersion,new FieldAnalyzer());
	}

	@Override public final boolean isIndexed(String fieldName) {
		return mfp.fields.containsKey(fieldName);
	}

	@Override public final Analyzer getAnalyzer(String fieldName) {
		FieldParser fp = mfp.fields.get(fieldName);
		if( !(fp instanceof StringFieldParser) )
			return null;
		StringFieldParser sfp = (StringFieldParser)fp;
		Analyzer analyzer = sfp.analyzer;
		return analyzer instanceof KeywordAnalyzer ? null : analyzer;
	}

	private static final MoreFieldInfo noMoreFieldInfo = new MoreFieldInfo(Collections.emptyMap(),Collections.emptyMap());

	@Override public MoreFieldInfo getMoreFieldInfo(Map<String,Object> storedFields) {
		return noMoreFieldInfo;
	}
}