1 package org.wikimedia.search.extra.analysis.filters;
2
3 import org.apache.lucene.analysis.TokenStream;
4 import org.elasticsearch.common.inject.Inject;
5 import org.elasticsearch.common.settings.Settings;
6 import org.elasticsearch.env.Environment;
7 import org.elasticsearch.index.IndexSettings;
8 import org.elasticsearch.index.analysis.AbstractTokenFilterFactory;
9
10
11
12
13 public class PreserveOriginalFilterFactory extends AbstractTokenFilterFactory {
14 public PreserveOriginalFilterFactory(IndexSettings indexSettings, Environment environment, String name, Settings settings) {
15 super(indexSettings, name, settings);
16 }
17
18 @Override
19 public TokenStream create(TokenStream tokenStream) {
20 return new PreserveOriginalFilter(tokenStream);
21 }
22
23 public static class RecorderFactory extends AbstractTokenFilterFactory {
24 @Inject
25 public RecorderFactory(IndexSettings indexSettings, Environment environment, String name, Settings settings) {
26 super(indexSettings, name, settings);
27 }
28
29 @Override
30 public TokenStream create(TokenStream tokenStream) {
31 return new PreserveOriginalFilter.Recorder(tokenStream);
32 }
33 }
34 }