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

SpellCheckComponent doesn't complain if its spellchecker list is malformed

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 4.0
    • Fix Version/s: None
    • Component/s: spellchecker
    • Labels:
      None

      Description

      The SpellCheckComponent doesn't do any significant validation of whether its input list of spellcheckers is malformed.

      For example:

        <searchComponent name="spellcheckBug" class="solr.SpellCheckComponent">
            <str name="name">other-name</str>
            <str name="classname">solr.FileBasedSpellChecker</str>
            <str name="sourceLocation">SpellDict.txt</str>
        </searchComponent>
      

      Oops, I forgot to put the "lst" element in there, like:

        <searchComponent name="spellcheckBug" class="solr.SpellCheckComponent">
          <lst name="spellchecker">
            <str name="name">other-name</str>
            <str name="classname">solr.FileBasedSpellChecker</str>
            <str name="sourceLocation">SpellDict.txt</str>
          </lst>
        </searchComponent>
      

      But, there was no complaint from Solr.

      The code:

            for (int i = 0; i < initParams.size(); i++) {
              if (initParams.getName(i).equals("spellchecker")) {
              }
           }
      

      No else.

      There is one other param that could be present, "queryAnalyzerFieldType", but any other param name should throw an exception.

      The handler I used:

        <requestHandler name="/spellBug" class="solr.SearchHandler" startup="lazy">
          <lst name="defaults">
            <str name="df">name</str>
            <str name="spellcheck">on</str>
            <str name="spellcheck.dictionary">some-name</str>
          </lst>
          <arr name="last-components">
            <str>spellcheckBug</str>
          </arr>
        </requestHandler>
      

      And the query request:

      curl "http://localhost:8983/solr/spellBug?q=catl&indent=true"
      

      In this case, the query returned without doing any spellchecking, when an error would be more appropriate.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jkrupan Jack Krupansky
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: