Please account for my demonstrated stupidity when considering this suggestion for thread safety policy / goals:
1) Concurrent invocations of suggestSimilar() should not interfere with each other.
2) An invocation of any of the write methods (setSpellIndex, clearIndex, indexDictionary) should not interfere with aleady invoked suggestSimilar
3) All calls to write methods should be serialized (We could probably synchronize these methods?)
If we synchronize any writes to the searcher reference, couldn't suggestSimilar just start its work by putting searcher in a local variable and use that instead of the field?
I guess concurrency is hard to get right..