We're using Solr 8.11.2 for searching in ~10 millions of items, with configuration https://github.com/sunspot/sunspot/tree/master/examples/solr7_core/conf. We had to set "buildOnCommit=false" according to https://solr.apache.org/guide/8_11/spell-checking.html because some of the commits happen within user requests, and they have to be fast.
At some point, we have to build the spellchecker in order to produce proper spellchecker suggestions, maybe once per night, and the building shouldn't significantly impact the runtime of search requests coming in meanwhile.
My questions:
What is the difference between https://solr.apache.org/guide/8_11/spell-checking.html and https://solr.apache.org/guide/8_11/suggester.html, and which is for what purpose?
How can I automatically trigger a full rebuild of the spellchecker dictionary? Is there something similar to https://solr.apache.org/guide/8_11/suggester.html#suggester-search-component-parameters for spellcheckers that can be triggered by some specific requests using "buildAll=true"? Or is there some parameter "buildOnOptimize=true" for spellcheckers and some interface that can be used to trigger that optimization by some cronjob, without blocking other users?
Will I have to maintain 2 parallel Solr cores and data directories in order to avoid performance issues with public search requests? Like 1 core and 1 data directory for public search requests, and once per night building a new data directory with another equally defined Solr core, and finally replacing the old public data directory?
What does "spellcheck.reload" and "suggest.reload" and "suggest.reloadAll" mean? Why are some data not automatically available after building?
Does "rake sunspot:reindex" include rebuilding the spellchecker dictionary?
Some good advice would be very helpful! Thanks :)