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

Nested dismax query showing "dismax" as spellcheck result

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Invalid
    • None
    • 1.4
    • None
    • None

    Description

      I'm performing the following query against our Solr database:

      spellcheck.count=5&facet=true&facet.limit=200&hl=true&hl.fl=name&hl.fl=shortDescription&version=1&start=0&facet.sort=index&facet.field=parentCatgroup_id_search&facet.field=mfName_ntk_cs&fq=catalog_id:"10001"&fq=storeent_id:("10001")&fq=published:1&fq=-(catenttype_id_ntk_cs:ItemBean+AND+parentCatentry_id:[*+TO+*])&timeAllowed=15000&hl.simple.post=</span></strong>&rows=24&debugQuery=false&facet.query=price_CAD:({*+100}+100)&facet.query=price_CAD:({100+200}+200)&facet.query=price_CAD:({200+300}+300)&facet.query=price_CAD:({300+400}+400)&facet.query=price_CAD:({400+500}+500)&facet.query=price_CAD:({500+*})&q=(%2B(mfPartNumber_ntk:(TESTSTRING)+partNumber_ntk:(TESTSTRING)))+OR+(_query_:"{!dismax+ps%3D2+mm%3D'2<-25%25'+qf%3D'longDescription+name^5+mfName^10+xf_CategoryPath^10'+pf%3D'longDescription^10+name^30+xf_CategoryPath^30'}+TESTSTRING+")&spellcheck.collate=false&hl.simple.pre=<strong><span+class%3Dfont2>&facet.mincount=1&spellcheck=true&hl.requireFieldMatch=true
      

      which results in the following returned XML:

      This XML file does not appear to have any style information associated with it. The document tree is shown below.
      <response>
      <responseHeader>
      <status>0</status>
      <QTime>59</QTime>
      <lst name="params">
      <str name="spellcheck.count">5</str>
      <str name="facet">true</str>
      <str name="facet.limit">200</str>
      <str name="hl">true</str>
      <arr name="hl.fl">
      <str>name</str>
      <str>shortDescription</str>
      </arr>
      <str name="version">1</str>
      <str name="start">0</str>
      <str name="facet.sort">index</str>
      <arr name="facet.field">
      <str>parentCatgroup_id_search</str>
      <str>mfName_ntk_cs</str>
      </arr>
      <arr name="fq">
      <str>catalog_id:"10001"</str>
      <str>storeent_id:("10001")</str>
      <str>published:1</str>
      <str>
      -(catenttype_id_ntk_cs:ItemBean AND parentCatentry_id:[* TO *])
      </str>
      </arr>
      <str name="timeAllowed">15000</str>
      <str name="hl.simple.post"></span></strong></str>
      <str name="rows">24</str>
      <str name="debugQuery">false</str>
      <arr name="facet.query">
      <str>price_CAD:({* 100} 100)</str>
      <str>price_CAD:({100 200} 200)</str>
      <str>price_CAD:({200 300} 300)</str>
      <str>price_CAD:({300 400} 400)</str>
      <str>price_CAD:({400 500} 500)</str>
      <str>price_CAD:({500 *})</str>
      </arr>
      <str name="q">
      (+(mfPartNumber_ntk:(TESTSTRING) partNumber_ntk:(TESTSTRING))) OR (_query_:"{!dismax ps=2 mm='2<-25%' qf='longDescription name^5 mfName^10 xf_CategoryPath^10' pf='longDescription^10 name^30 xf_CategoryPath^30'} TESTSTRING ")
      </str>
      <str name="hl.simple.pre"><strong><span class=font2></str>
      <str name="spellcheck.collate">false</str>
      <str name="facet.mincount">1</str>
      <str name="hl.requireFieldMatch">true</str>
      <str name="spellcheck">true</str>
      </lst>
      </responseHeader>
      <result name="response" numFound="0" start="0"/>
      <lst name="facet_counts">
      <lst name="facet_queries">
      <int name="price_CAD:({* 100} 100)">0</int>
      <int name="price_CAD:({100 200} 200)">0</int>
      <int name="price_CAD:({200 300} 300)">0</int>
      <int name="price_CAD:({300 400} 400)">0</int>
      <int name="price_CAD:({400 500} 500)">0</int>
      <int name="price_CAD:({500 *})">0</int>
      </lst>
      <lst name="facet_fields">
      <lst name="parentCatgroup_id_search"/>
      <lst name="mfName_ntk_cs"/>
      </lst>
      <lst name="facet_dates"/>
      </lst>
      <lst name="highlighting"/>
      <lst name="spellcheck">
      <lst name="suggestions">
      <lst name="teststring">
      <int name="numFound">5</int>
      <int name="startOffset">21</int>
      <int name="endOffset">31</int>
      <arr name="suggestion">
      <str>test taking</str>
      <str>testing</str>
      <str>tests eolang</str>
      <str>tests quick</str>
      <str>tests grade</str>
      </arr>
      </lst>
      <lst name="teststring">
      <int name="numFound">5</int>
      <int name="startOffset">49</int>
      <int name="endOffset">59</int>
      <arr name="suggestion">
      <str>test taking</str>
      <str>testing</str>
      <str>tests eolang</str>
      <str>tests quick</str>
      <str>tests grade</str>
      </arr>
      </lst>
      <lst name="dismax">
      <int name="numFound">5</int>
      <int name="startOffset">78</int>
      <int name="endOffset">84</int>
      <arr name="suggestion">
      <str>digimax</str>
      <str>minimax</str>
      <str>big max</str>
      <str>heisman</str>
      <str>mid max</str>
      </arr>
      </lst>
      <lst name="qf">
      <int name="numFound">3</int>
      <int name="startOffset">102</int>
      <int name="endOffset">104</int>
      <arr name="suggestion">
      <str>qlf</str>
      <str>qnf</str>
      <str>qlfd</str>
      </arr>
      </lst>
      <lst name="longdescription">
      <int name="numFound">5</int>
      <int name="startOffset">106</int>
      <int name="endOffset">121</int>
      <arr name="suggestion">
      <str>job descriptions</str>
      <str>description</str>
      <str>prescription</str>
      <str>descriptions</str>
      <str>skin prescription</str>
      </arr>
      </lst>
      <lst name="mfname">
      <int name="numFound">5</int>
      <int name="startOffset">129</int>
      <int name="endOffset">135</int>
      <arr name="suggestion">
      <str>3 name</str>
      <str>ornament</str>
      <str>enamel</str>
      <str>username</str>
      <str>surnames</str>
      </arr>
      </lst>
      <lst name="categorypath">
      <int name="numFound">5</int>
      <int name="startOffset">139</int>
      <int name="endOffset">154</int>
      <arr name="suggestion">
      <str>category</str>
      <str>category 5e</str>
      <str>category 6</str>
      <str>category 5</str>
      <str>category 6a</str>
      </arr>
      </lst>
      <lst name="longdescription">
      <int name="numFound">5</int>
      <int name="startOffset">163</int>
      <int name="endOffset">178</int>
      <arr name="suggestion">
      <str>job descriptions</str>
      <str>description</str>
      <str>prescription</str>
      <str>descriptions</str>
      <str>skin prescription</str>
      </arr>
      </lst>
      <lst name="categorypath">
      <int name="numFound">5</int>
      <int name="startOffset">190</int>
      <int name="endOffset">205</int>
      <arr name="suggestion">
      <str>category</str>
      <str>category 5e</str>
      <str>category 6</str>
      <str>category 5</str>
      <str>category 6a</str>
      </arr>
      </lst>
      <lst name="teststring">
      <int name="numFound">5</int>
      <int name="startOffset">211</int>
      <int name="endOffset">221</int>
      <arr name="suggestion">
      <str>test taking</str>
      <str>testing</str>
      <str>tests eolang</str>
      <str>tests quick</str>
      <str>tests grade</str>
      </arr>
      </lst>
      </lst>
      </lst>
      </response>
      

      Parts of the nested dismax query are being used as spellcheck keywords, and we don't quite understand why. Is there something that we're doing wrong, which would cause the nested query to show up as spellcheck kwywords?

      Thanks.

      Attachments

        Activity

          People

            Unassigned Unassigned
            parham@shop.ca Parham Mofidi
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: