I would really like to get this issue resolved if possible. Here are 3 possible solutions:
1. The Nov 1 patch "
SOLR-2848.patch" increases test coverage and makes the minimal changes to fix the distributed bug with DirectSolrSpellChecker.
2. The Nov 1 patch "
SOLR-2848-refactoring.patch" also refactors the code, breaking the finishStage() method up and also moving the final merge into SolrSpellChecker. This allows us to theoretically have different spell checkers choose to merge differently. In practice, all of our spell checkers currently would use the same default version of "merge()"
3. We could dial back the changes in "
SOLR-2848-refactoring.patch" to keep merge() as a method in SpellCheckComponent as all spell checkers use the same algorithm anyhow. But we could keep the changes to make finishStage() more readable and, more importantly, keep the "getStringDistance()" and "getAccuracy()" methods in SolrSpellChecker. This at least eliminates the need for "instanceof" checks, making Distributed Spell Check less brittle as new spell checkers are added.
Please advise how we should move forward. (I like option #3 the best. I can create a patch for this if desired.) Thanks.