package org.apache.solr.analysis.author; import java.io.IOException; import org.apache.lucene.analysis.TokenFilter; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; public final class AuthorDetectAndIgnoreFilter extends TokenFilter { private Integer maxlen; private final CharTermAttribute termAtt; protected AuthorDetectAndIgnoreFilter(TokenStream input, Integer maxlen) { super(input); this.maxlen = maxlen; termAtt = addAttribute(CharTermAttribute.class); } @Override public boolean incrementToken() throws IOException { if (!input.incrementToken()) { return false; } if (maxlen != null && maxlen != -1) { String[] parts = termAtt.toString().split(" "); if (parts.length > maxlen) { return false; } } return true; } }