@Override
public TokenStream tokenStream(String fieldName, Reader reader) {
TokenStream result = new StandardTokenizer(LuceneVersion.getVersion(), reader);
result = new StandardFilter(result);
result = new LowerCaseFilter(result);
result = new ASCIIFoldingFilter(result);
List<String> list = Arrays.asList(ENGLISH_STOP_WORDS);
Set<String> set = new HashSet<String>(list);
result = new StopFilter(false, result, set, true);
result = new EdgeNGramTokenFilter(result, Side.FRONT, 1, 20);
return result;