public Analyzer analyzer(String name) {
   PreBuiltAnalyzerProviderFactory analyzerProviderFactory = analyzerProviderFactory(name);
   if (analyzerProviderFactory == null) {
     return null;
   }
   return analyzerProviderFactory.analyzer();
 }
  @Test
  public void testVersioningInFactoryProvider() throws Exception {
    PreBuiltAnalyzerProviderFactory factory =
        new PreBuiltAnalyzerProviderFactory(
            "default",
            AnalyzerScope.INDEX,
            PreBuiltAnalyzers.STANDARD.getAnalyzer(Version.CURRENT));

    AnalyzerProvider former090AnalyzerProvider =
        factory.create(
            "default",
            Settings.settingsBuilder()
                .put(IndexMetaData.SETTING_VERSION_CREATED, Version.V_0_90_0)
                .build());
    AnalyzerProvider currentAnalyzerProviderReference =
        factory.create(
            "default",
            Settings.settingsBuilder()
                .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT)
                .build());

    // would love to access the version inside of the lucene analyzer, but that is not possible...
    assertThat(currentAnalyzerProviderReference, is(not(former090AnalyzerProvider)));
  }
 public void close() {
   for (PreBuiltAnalyzerProviderFactory analyzerProviderFactory :
       analyzerProviderFactories.values()) {
     analyzerProviderFactory.analyzer().close();
   }
 }