package org.xbib.elasticsearch.index.analysis.icu; import com.ibm.icu.text.Collator; import org.apache.lucene.analysis.Tokenizer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; import org.xbib.elasticsearch.index.analysis.icu.segmentation.IcuTokenizer; import org.xbib.elasticsearch.index.analysis.icu.segmentation.IcuTokenizerFactory; /** * This {@link IcuTokenizer} uses an ICU @{@link Collator} as a char attribute factory. */ public class IcuCollationTokenizerFactory extends IcuTokenizerFactory { private final IcuCollationAttributeFactory factory; public IcuCollationTokenizerFactory(IndexSettings indexSettings, Environment environment, String name, Settings settings) { super(indexSettings, environment, name, settings); this.factory = new IcuCollationAttributeFactory(IcuCollationKeyAnalyzerProvider.createCollator(settings)); } @Override public Tokenizer create() { return new IcuTokenizer(factory, config); } }