Reading through the code for Solr SpellCheckComponent.java for 4.1, it looks 
like it neither complains nor defaults reasonably if more than on 
QueryConverter class is present in the Solr lib directories:

Map<String, QueryConverter> queryConverters = new HashMap<String, 
QueryConverter>();
core.initPlugins(queryConverters,QueryConverter.class);

//ensure that there is at least one query converter defined
if (queryConverters.size() == 0) {
  LOG.info("No queryConverter defined, using default converter");
  queryConverters.put("queryConverter", new SpellingQueryConverter());
}

//there should only be one
if (queryConverters.size() == 1) {
  queryConverter = queryConverters.values().iterator().next();
  IndexSchema schema = core.getSchema();
  String fieldTypeName = (String) initParams.get("queryAnalyzerFieldType");
  FieldType fieldType = schema.getFieldTypes().get(fieldTypeName);
  Analyzer analyzer = fieldType == null ? new 
WhitespaceAnalyzer(core.getSolrConfig().luceneMatchVersion)
          : fieldType.getQueryAnalyzer();
  //TODO: There's got to be a better way!  Where's Spring when you need it?
  queryConverter.setAnalyzer(analyzer);
}

No else! And queryConverter is not initialized, except for that code path where 
there was zero or one QueryConverter class.

-- Jack Krupansky

Reply via email to