@@ -74,14 +74,15 @@ public AnalysisRegistry(Environment environment,
7474 Map <String , AnalysisProvider <TokenizerFactory >> tokenizers ,
7575 Map <String , AnalysisProvider <AnalyzerProvider <?>>> analyzers ,
7676 Map <String , AnalysisProvider <AnalyzerProvider <?>>> normalizers ,
77- Map <String , PreConfiguredTokenFilter > preConfiguredTokenFilters ) {
77+ Map <String , PreConfiguredTokenFilter > preConfiguredTokenFilters ,
78+ Map <String , PreConfiguredTokenizer > preConfiguredTokenizers ) {
7879 this .environment = environment ;
7980 this .charFilters = unmodifiableMap (charFilters );
8081 this .tokenFilters = unmodifiableMap (tokenFilters );
8182 this .tokenizers = unmodifiableMap (tokenizers );
8283 this .analyzers = unmodifiableMap (analyzers );
8384 this .normalizers = unmodifiableMap (normalizers );
84- prebuiltAnalysis = new PrebuiltAnalysis (preConfiguredTokenFilters );
85+ prebuiltAnalysis = new PrebuiltAnalysis (preConfiguredTokenFilters , preConfiguredTokenizers );
8586 }
8687
8788 /**
@@ -169,12 +170,12 @@ public Map<String, TokenFilterFactory> buildTokenFilterFactories(IndexSettings i
169170 */
170171 tokenFilters .put ("synonym" , requiresAnalysisSettings ((is , env , name , settings ) -> new SynonymTokenFilterFactory (is , env , this , name , settings )));
171172 tokenFilters .put ("synonym_graph" , requiresAnalysisSettings ((is , env , name , settings ) -> new SynonymGraphTokenFilterFactory (is , env , this , name , settings )));
172- return buildMapping (Component .FILTER , indexSettings , tokenFiltersSettings , Collections .unmodifiableMap (tokenFilters ), prebuiltAnalysis .tokenFilterFactories );
173+ return buildMapping (Component .FILTER , indexSettings , tokenFiltersSettings , Collections .unmodifiableMap (tokenFilters ), prebuiltAnalysis .preConfiguredTokenFilters );
173174 }
174175
175176 public Map <String , TokenizerFactory > buildTokenizerFactories (IndexSettings indexSettings ) throws IOException {
176177 final Map <String , Settings > tokenizersSettings = indexSettings .getSettings ().getGroups (INDEX_ANALYSIS_TOKENIZER );
177- return buildMapping (Component .TOKENIZER , indexSettings , tokenizersSettings , tokenizers , prebuiltAnalysis .tokenizerFactories );
178+ return buildMapping (Component .TOKENIZER , indexSettings , tokenizersSettings , tokenizers , prebuiltAnalysis .preConfiguredTokenizers );
178179 }
179180
180181 public Map <String , CharFilterFactory > buildCharFilterFactories (IndexSettings indexSettings ) throws IOException {
@@ -394,31 +395,22 @@ private <T> AnalysisProvider<T> getAnalysisProvider(Component component, Map<Str
394395 private static class PrebuiltAnalysis implements Closeable {
395396
396397 final Map <String , AnalysisModule .AnalysisProvider <AnalyzerProvider <?>>> analyzerProviderFactories ;
397- final Map <String , AnalysisModule . AnalysisProvider <TokenizerFactory >> tokenizerFactories ;
398- final Map <String , ? extends AnalysisProvider <TokenFilterFactory >> tokenFilterFactories ;
398+ final Map <String , ? extends AnalysisProvider <TokenFilterFactory >> preConfiguredTokenFilters ;
399+ final Map <String , ? extends AnalysisProvider <TokenizerFactory >> preConfiguredTokenizers ;
399400 final Map <String , AnalysisModule .AnalysisProvider <CharFilterFactory >> charFilterFactories ;
400401
401- private PrebuiltAnalysis (Map <String , PreConfiguredTokenFilter > preConfiguredTokenFilters ) {
402+ private PrebuiltAnalysis (
403+ Map <String , PreConfiguredTokenFilter > preConfiguredTokenFilters ,
404+ Map <String , PreConfiguredTokenizer > preConfiguredTokenizers ) {
402405 Map <String , PreBuiltAnalyzerProviderFactory > analyzerProviderFactories = new HashMap <>();
403- Map <String , PreBuiltTokenizerFactoryFactory > tokenizerFactories = new HashMap <>();
404406 Map <String , PreBuiltCharFilterFactoryFactory > charFilterFactories = new HashMap <>();
407+
405408 // Analyzers
406409 for (PreBuiltAnalyzers preBuiltAnalyzerEnum : PreBuiltAnalyzers .values ()) {
407410 String name = preBuiltAnalyzerEnum .name ().toLowerCase (Locale .ROOT );
408411 analyzerProviderFactories .put (name , new PreBuiltAnalyzerProviderFactory (name , AnalyzerScope .INDICES , preBuiltAnalyzerEnum .getAnalyzer (Version .CURRENT )));
409412 }
410413
411- // Tokenizers
412- for (PreBuiltTokenizers preBuiltTokenizer : PreBuiltTokenizers .values ()) {
413- String name = preBuiltTokenizer .name ().toLowerCase (Locale .ROOT );
414- tokenizerFactories .put (name , new PreBuiltTokenizerFactoryFactory (preBuiltTokenizer .getTokenizerFactory (Version .CURRENT )));
415- }
416-
417- // Tokenizer aliases
418- tokenizerFactories .put ("nGram" , new PreBuiltTokenizerFactoryFactory (PreBuiltTokenizers .NGRAM .getTokenizerFactory (Version .CURRENT )));
419- tokenizerFactories .put ("edgeNGram" , new PreBuiltTokenizerFactoryFactory (PreBuiltTokenizers .EDGE_NGRAM .getTokenizerFactory (Version .CURRENT )));
420- tokenizerFactories .put ("PathHierarchy" , new PreBuiltTokenizerFactoryFactory (PreBuiltTokenizers .PATH_HIERARCHY .getTokenizerFactory (Version .CURRENT )));
421-
422414 // Char Filters
423415 for (PreBuiltCharFilters preBuiltCharFilter : PreBuiltCharFilters .values ()) {
424416 String name = preBuiltCharFilter .name ().toLowerCase (Locale .ROOT );
@@ -429,20 +421,20 @@ private PrebuiltAnalysis(Map<String, PreConfiguredTokenFilter> preConfiguredToke
429421
430422 this .analyzerProviderFactories = Collections .unmodifiableMap (analyzerProviderFactories );
431423 this .charFilterFactories = Collections .unmodifiableMap (charFilterFactories );
432- this .tokenizerFactories = Collections . unmodifiableMap ( tokenizerFactories ) ;
433- tokenFilterFactories = preConfiguredTokenFilters ;
424+ this .preConfiguredTokenFilters = preConfiguredTokenFilters ;
425+ this . preConfiguredTokenizers = preConfiguredTokenizers ;
434426 }
435427
436428 public AnalysisModule .AnalysisProvider <CharFilterFactory > getCharFilterFactory (String name ) {
437429 return charFilterFactories .get (name );
438430 }
439431
440432 public AnalysisModule .AnalysisProvider <TokenFilterFactory > getTokenFilterFactory (String name ) {
441- return tokenFilterFactories .get (name );
433+ return preConfiguredTokenFilters .get (name );
442434 }
443435
444436 public AnalysisModule .AnalysisProvider <TokenizerFactory > getTokenizerFactory (String name ) {
445- return tokenizerFactories .get (name );
437+ return preConfiguredTokenizers .get (name );
446438 }
447439
448440 public AnalysisModule .AnalysisProvider <AnalyzerProvider <?>> getAnalyzerProvider (String name ) {
0 commit comments