Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-9154

Config API does not work when adding a component with DirectSolrSpellChecker

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 6.4, 7.0
    • Component/s: config-api, spellchecker
    • Labels:
      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)
      

        Attachments

        1. SOLR-9154.patch
          4 kB
          Anshum Gupta
        2. SOLR-9154.patch
          3 kB
          Anshum Gupta

          Activity

            People

            • Assignee:
              anshumg Anshum Gupta
              Reporter:
              anshumg Anshum Gupta
            • Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: