public Map<String, AnalyzerReference> initLazyAnalyzerReferences( IndexManagerHolder indexesFactory) { final Map<String, AnalyzerReference> initializedAnalyzers = new HashMap<>(analyzerDefs.size()); for (LuceneAnalyzerReference lazyAnalyzerReference : lazyLuceneAnalyzerReferences) { initLazyLuceneAnalyzer(initializedAnalyzers, lazyAnalyzerReference); } for (RemoteAnalyzerReference remoteAnalyzerReference : lazyRemoteAnalyzerReferences) { initLazyRemoteAnalyzer(initializedAnalyzers, remoteAnalyzerReference, indexesFactory); } // init default remote analyzers initLazyRemoteAnalyzer(initializedAnalyzers, RemoteAnalyzerReference.DEFAULT, indexesFactory); initLazyRemoteAnalyzer( initializedAnalyzers, RemoteAnalyzerReference.PASS_THROUGH, indexesFactory); // initialize the remaining definitions for (Map.Entry<String, AnalyzerDef> entry : analyzerDefs.entrySet()) { if (!initializedAnalyzers.containsKey(entry.getKey())) { final Analyzer analyzer = buildAnalyzer(entry.getValue()); final AnalyzerReference reference = new LuceneAnalyzerReference(analyzer); initializedAnalyzers.put(entry.getKey(), reference); } } return Collections.unmodifiableMap(initializedAnalyzers); }