package org.xbib.elasticsearch.index.analysis.naturalsort;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.core.KeywordTokenizer;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.env.Environment;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.analysis.AbstractTokenizerFactory;
import java.text.Collator;
/**
*
*/
public class NaturalSortKeyTokenizerFactory extends AbstractTokenizerFactory {
private final NaturalSortKeyAttributeFactory factory;
private final int bufferSize;
public NaturalSortKeyTokenizerFactory(IndexSettings indexSettings, Environment environment, String name,
Settings settings) {
super(indexSettings, name, settings);
Collator collator = NaturalSortKeyAnalyzerProvider.createCollator(settings);
int digits = settings.getAsInt("digits", 1);
int maxTokens = settings.getAsInt("maxTokens", 2);
this.factory = new NaturalSortKeyAttributeFactory(collator, digits, maxTokens);
this.bufferSize = settings.getAsInt("bufferSize", KeywordTokenizer.DEFAULT_BUFFER_SIZE);
}
@Override
public Tokenizer create() {
return new KeywordTokenizer(factory, bufferSize);
}
}