package org.xbib.elasticsearch.index.analysis.hyphen; import org.apache.lucene.analysis.TokenStream; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.analysis.AbstractTokenFilterFactory; /** * */ public class HyphenTokenFilterFactory extends AbstractTokenFilterFactory { private final char[] hyphenchars; private final boolean subwords; private final boolean respectKeywords; public HyphenTokenFilterFactory(IndexSettings indexSettings, Environment environment, String name, Settings settings) { super(indexSettings, name, settings); this.hyphenchars = settings.get("hyphens") != null ? settings.get("hyphens").toCharArray() : HyphenTokenFilter.HYPHEN; this.subwords = settings.getAsBoolean("subwords", true); this.respectKeywords = settings.getAsBoolean("respect_keywords", false); } @Override public TokenStream create(TokenStream tokenStream) { return new HyphenTokenFilter(tokenStream, hyphenchars, subwords, respectKeywords); } }