Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
When trying to add a DirectSolrSpellchecker using the Config API (JSON), there seems to be a loss of information w.r.t the param types. The accuracy field, only in this specific case needs to be defined as a float it seems. While this is possible when updating the solrconfig,xml directly, the field type (float) can not be specified using JSON.
Here are the steps to reproduce this issue:
#Bootstrapping
bin/solr start -c
bin/solr create -c foo
bin/post -c foo example/exampledocs/books.csv
#Add spell checker - This would hang and the logs contain recurring exceptions as mentioned below
curl http://localhost:8983/solr/foo/config -H 'Content-type:application/json' -d '{"update-searchcomponent": {"name":"spellcheck", "class":"solr.SpellCheckComponent", "spellchecker":[ { "name":"text_index_dictionary", "field":"text", "classname":"solr.DirectSolrSpellChecker", "distanceMeasure":"org.apache.lucene.search.spell.LevensteinDistance", "accuracy":0.5, "maxEdits":2, "minPrefix":1, "maxInspections":5, "minQueryLength":4, "maxQueryFrequency":0.001, "thresholdTokenFrequency":0.01}]}}'
Log:
2016-05-24 04:08:44.371 ERROR (SolrConfigHandler-refreshconf) [c:foo s:shard1 r:core_node1 x:foo_shard1_replica1] o.a.s.h.SolrConfigHandler Unable to refresh conf org.apache.solr.common.SolrException: Unable to reload core [foo_shard1_replica1] at org.apache.solr.core.CoreContainer.reload(CoreContainer.java:944) at org.apache.solr.core.SolrCore.lambda$getConfListener$7(SolrCore.java:2510) at org.apache.solr.handler.SolrConfigHandler$Command$1.run(SolrConfigHandler.java:218) Caused by: org.apache.solr.common.SolrException: java.lang.Double cannot be cast to java.lang.Float at org.apache.solr.core.SolrCore.<init>(SolrCore.java:773) at org.apache.solr.core.SolrCore.reload(SolrCore.java:462) at org.apache.solr.core.CoreContainer.reload(CoreContainer.java:938)