|
@@ -22,20 +22,26 @@ package org.elasticsearch.indices.analysis;
|
|
|
import com.ibm.icu.text.Collator;
|
|
|
import com.ibm.icu.text.Normalizer2;
|
|
|
import com.ibm.icu.text.Transliterator;
|
|
|
+
|
|
|
import org.apache.lucene.analysis.TokenStream;
|
|
|
import org.apache.lucene.analysis.Tokenizer;
|
|
|
import org.apache.lucene.analysis.icu.ICUFoldingFilter;
|
|
|
+import org.apache.lucene.analysis.icu.ICUNormalizer2CharFilter;
|
|
|
import org.apache.lucene.analysis.icu.ICUTransformFilter;
|
|
|
import org.apache.lucene.analysis.icu.segmentation.ICUTokenizer;
|
|
|
import org.elasticsearch.common.component.AbstractComponent;
|
|
|
import org.elasticsearch.common.inject.Inject;
|
|
|
import org.elasticsearch.common.settings.Settings;
|
|
|
import org.elasticsearch.index.analysis.ICUCollationKeyFilter;
|
|
|
+import org.elasticsearch.index.analysis.PreBuiltCharFilterFactoryFactory;
|
|
|
import org.elasticsearch.index.analysis.PreBuiltTokenFilterFactoryFactory;
|
|
|
import org.elasticsearch.index.analysis.PreBuiltTokenizerFactoryFactory;
|
|
|
+import org.elasticsearch.index.analysis.CharFilterFactory;
|
|
|
import org.elasticsearch.index.analysis.TokenFilterFactory;
|
|
|
import org.elasticsearch.index.analysis.TokenizerFactory;
|
|
|
|
|
|
+import java.io.Reader;
|
|
|
+
|
|
|
/**
|
|
|
* Registers indices level analysis components so, if not explicitly configured, will be shared
|
|
|
* among all indices.
|
|
@@ -106,5 +112,17 @@ public class IcuIndicesAnalysis extends AbstractComponent {
|
|
|
return new ICUTransformFilter(tokenStream, Transliterator.getInstance("Null", Transliterator.FORWARD));
|
|
|
}
|
|
|
}));
|
|
|
+
|
|
|
+ indicesAnalysisService.charFilterFactories().put("icu_normalizer", new PreBuiltCharFilterFactoryFactory(new CharFilterFactory() {
|
|
|
+ @Override
|
|
|
+ public String name() {
|
|
|
+ return "icu_normalizer";
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Reader create(Reader reader) {
|
|
|
+ return new ICUNormalizer2CharFilter(reader);
|
|
|
+ }
|
|
|
+ }));
|
|
|
}
|
|
|
}
|