solr - My Query is giving results out of the Range of storeMinPrice which I specified in Query can any one tell whatis wrong with My query -
http://localhost:8080/solr/store-products/select?stats=true&start=0&stats.field=storeminprice&q=city:(hyderabad)+and+apparel+and+storeminprice:[2941+to+3000]&q.op=and&fl=storeminprice
results
<response> <lst name="responseheader"> <int name="status">0</int> <int name="qtime">1</int> <lst name="params"> <str name="fl">storeminprice</str> <str name="start">0</str> <str name="q"> city:(hyderabad) , apparel , storeminprice:[2941 3000] </str> <str name="stats.field">storeminprice</str> <str name="stats">true</str> <str name="q.op">and</str> </lst> </lst> <result name="response" numfound="3" start="0"> <doc> <double name="storeminprice">295.0</double> </doc> <doc> <double name="storeminprice">299.0</double> </doc> <doc> <double name="storeminprice">2970.0</double> </doc> </result> <lst name="stats"> <lst name="stats_fields"> <lst name="storeminprice"> <double name="min">295.0</double> <double name="max">2970.0</double> <long name="count">3</long> <long name="missing">0</long> <double name="sum">3564.0</double> <double name="sumofsquares">8997326.0</double> <double name="mean">1188.0</double> <double name="stddev">1543.2585655035257</double> <lst name="facets"/> </lst> </lst> </lst> </response> and schema.xml is
<?xml version="1.0" encoding="utf-8" ?> <schema name="example" version="1.1"> <types> <fieldtype name="string" class="solr.strfield" sortmissinglast="true" omitnorms="true"/> <fieldtype name="boolean" class="solr.boolfield" sortmissinglast="true" omitnorms="true"/> <fieldtype name="integer" class="solr.intfield" omitnorms="true"/> <fieldtype name="long" class="solr.longfield" omitnorms="true"/> <fieldtype name="float" class="solr.floatfield" omitnorms="true"/> <fieldtype name="double" class="solr.doublefield" omitnorms="true"/> <fieldtype name="sint" class="solr.sortableintfield" sortmissinglast="true" omitnorms="true"/> <fieldtype name="slong" class="solr.sortablelongfield" sortmissinglast="true" omitnorms="true"/> <fieldtype name="sfloat" class="solr.sortablefloatfield" sortmissinglast="true" omitnorms="true"/> <fieldtype name="sdouble" class="solr.sortabledoublefield" sortmissinglast="true" omitnorms="true"/> <fieldtype name="date" class="solr.datefield" sortmissinglast="true" omitnorms="true"/> <fieldtype name="random" class="solr.randomsortfield" indexed="true" /> <fieldtype name="text_ws" class="solr.textfield" positionincrementgap="100"> <analyzer> <tokenizer class="solr.whitespacetokenizerfactory"/> </analyzer> </fieldtype> <fieldtype name="text" class="solr.textfield" positionincrementgap="100"> <analyzer type="index"> <tokenizer class="solr.whitespacetokenizerfactory"/> <charfilter class="solr.htmlstripcharfilterfactory"/> <filter class="solr.stopfilterfactory" ignorecase="true" words="stopwords.txt" enablepositionincrements="true" /> <filter class="solr.worddelimiterfilterfactory" generatewordparts="1" generatenumberparts="1" catenatewords="1" catenatenumbers="1" catenateall="0" splitoncasechange="1"/> <filter class="solr.lowercasefilterfactory"/> <filter class="solr.removeduplicatestokenfilterfactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.whitespacetokenizerfactory"/> <filter class="solr.synonymfilterfactory" synonyms="synonyms.txt" ignorecase="true" expand="true"/> <filter class="solr.stopfilterfactory" ignorecase="true" words="stopwords.txt"/> <filter class="solr.worddelimiterfilterfactory" generatewordparts="1" generatenumberparts="1" catenatewords="0" catenatenumbers="0" catenateall="0" splitoncasechange="1"/> <filter class="solr.lowercasefilterfactory"/> <filter class="solr.removeduplicatestokenfilterfactory"/> </analyzer> </fieldtype> <!-- less flexible matching, less false matches. not ideal product names, may skus. can insert dashes in wrong place , still match. --> <fieldtype name="texttight" class="solr.textfield" positionincrementgap="100" > <analyzer> <tokenizer class="solr.whitespacetokenizerfactory"/> <filter class="solr.synonymfilterfactory" synonyms="synonyms.txt" ignorecase="true" expand="false"/> <filter class="solr.stopfilterfactory" ignorecase="true" words="stopwords.txt"/> <filter class="solr.worddelimiterfilterfactory" generatewordparts="0" generatenumberparts="0" catenatewords="1" catenatenumbers="1" catenateall="0"/> <filter class="solr.lowercasefilterfactory"/> <filter class="solr.removeduplicatestokenfilterfactory"/> </analyzer> </fieldtype> <!-- setup simple analysis spell checking --> <fieldtype name="textspell" class="solr.textfield" positionincrementgap="100" > <analyzer> <tokenizer class="solr.standardtokenizerfactory"/> <filter class="solr.lowercasefilterfactory"/> <filter class="solr.removeduplicatestokenfilterfactory"/> </analyzer> </fieldtype> <!-- example of using keywordtokenizer along various tokenfilterfactories produce sortable field not include properties of source text --> <fieldtype name="alphaonlysort" class="solr.textfield" sortmissinglast="true" omitnorms="true"> <analyzer> <tokenizer class="solr.keywordtokenizerfactory"/> <filter class="solr.lowercasefilterfactory" /> <filter class="solr.trimfilterfactory" /> <filter class="solr.patternreplacefilterfactory" pattern="([^a-z])" replacement="" replace="all" /> </analyzer> </fieldtype> <fieldtype name="ignored" stored="false" indexed="false" class="solr.strfield" /> <fieldtype name="location" class="solr.latlontype" subfieldsuffix="_coordinate"/> <fieldtype name="tdouble" class="solr.triedoublefield" precisionstep="0" omitnorms="true" positionincrementgap="0"/> <fieldtype name="searchtext" class="solr.textfield" positionincrementgap="100" omitnorms="true"> <analyzer type="index"> <tokenizer class="solr.keywordtokenizerfactory"/> <filter class="solr.lowercasefilterfactory"/> </analyzer> </fieldtype> </types> <fields> <field name="storeid" type="integer" indexed="true" stored="true" required="true" /> <field name="storeproductid" type="integer" indexed="true" stored="true" required="true" /> <field name="noofnamedrelatedstores" type="integer" indexed="true" stored="true" required="false" /> <field name="hasrelatedstores" type="boolean" indexed="true" stored="true" required="false" /> <field name="addressid" type="integer" indexed="true" stored="true" required="false" /> <field name="latitude" type="double" indexed="true" stored="true" required="true" /> <field name="longitude" type="double" indexed="true" stored="true" required="true" /> <field name="city" type="string" indexed="true" stored="true" required="true" /> <field name="location" type="string" indexed="true" stored="true" required="true" /> <field name="urllocation" type="string" indexed="true" stored="true" required="false" /> <field name="addressline1" type="string" indexed="true" stored="true" required="false" /> <field name="addressline2" type="string" indexed="true" stored="true" required="false" /> <field name="landmark" type="string" indexed="true" stored="true" required="false" /> <field name="zipcode" type="string" indexed="true" stored="true" required="false" /> <field name="storename" type="string" indexed="true" stored="true" required="false" /> <field name="storeurlname" type="string" indexed="true" stored="true" required="false" /> <field name="cityid" type="integer" indexed="true" stored="true" required="false" /> <field name="active" type="boolean" indexed="true" stored="true" required="false" /> <field name="description" type="text" indexed="true" stored="true" required="false" /> <field name="websiteurl" type="string" indexed="true" stored="true" required="false" /> <field name="email" type="string" indexed="true" stored="true" required="false" /> <field name="phone" type="string" indexed="true" stored="true" required="false" /> <field name="mobile" type="string" indexed="true" stored="true" required="false" /> <field name="storetypeid" type="integer" indexed="true" stored="true" required="false" /> <field name="clientrelationshiptype" type="integer" indexed="true" stored="true" required="false" /> <field name="storeimage" type="string" indexed="true" stored="true" required="false" /> <field name="productid" type="integer" indexed="true" stored="true" required="true" /> <field name="productname" type="string" indexed="true" stored="true" required="true" /> <field name="producturlname" type="string" indexed="true" stored="true" required="false" /> <field name="productdescription" type="text" indexed="true" stored="true" required="false" /> <field name="productimage" type="string" indexed="true" stored="true" required="false" /> <field name="brandid" type="integer" indexed="true" stored="true" required="true" /> <field name="brandname" type="string" indexed="true" stored="true" required="true" /> <field name="brandurlname" type="string" indexed="true" stored="true" required="false" /> <field name="categoryid" type="integer" indexed="true" stored="true" required="true" /> <field name="categoryname" type="string" indexed="true" stored="true" required="true" /> <field name="categoryurlname" type="string" indexed="true" stored="true" required="true" /> <field name="menudisplayname" type="string" indexed="true" stored="true" required="true" /> <field name="storeminprice" type="double" indexed="true" stored="true" required="true" /> <field name="storemaxprice" type="double" indexed="true" stored="true" required="true" /> <field name="discountpercentage" type="double" indexed="true" stored="true" required="false" /> <field name="buyx" type="integer" indexed="true" stored="true" required="false" /> <field name="gety" type="integer" indexed="true" stored="true" required="false" /> <field name="groupid" type="integer" indexed="true" stored="true" required="false" /> <field name="storecount" type="integer" indexed="true" stored="true" required="false" /> <field name="author" type="string" indexed="true" stored="true" required="false" /> <field name="isbn10" type="string" indexed="true" stored="true" required="false" /> <field name="isbn13" type="string" indexed="true" stored="true" required="false" /> <field name="olid" type="string" indexed="true" stored="true" required="false" /> <field name="ean13" type="string" indexed="true" stored="true" required="false" /> <field name="upca" type="string" indexed="true" stored="true" required="false" /> <field name="upce" type="string" indexed="true" stored="true" required="false" /> <field name="sku" type="string" indexed="true" stored="true" required="false" /> <field name="language" type="string" indexed="true" stored="true" required="false" /> <field name="format" type="string" indexed="true" stored="true" required="false" /> <field name="publisher" type="string" indexed="true" stored="true" required="false" /> <field name="subject" type="string" indexed="true" stored="true" required="false" /> <field name="storeproperties" type="string" indexed="true" stored="true" required="false" multivalued="true"/> <field name="specifications" type="string" indexed="true" stored="true" required="false" multivalued="true"/> <field name="latlong" type="location" indexed="true" stored="true"/> <field name="text" type="text" indexed="true" stored="false" multivalued="true"/> <field name="suggestion_text" type="searchtext" indexed="true" stored="false" multivalued="true" omitnorms="true" omittermfreqandpositions="false"/> <dynamicfield name="*_i" type="integer" indexed="true" stored="true"/> <!--<dynamicfield name="*" type="string" indexed="true" stored="true" /> --> <dynamicfield name="*_s" type="string" indexed="true" stored="true" required="false" /> <dynamicfield name="*_l" type="slong" indexed="true" stored="true"/> <dynamicfield name="*_t" type="text" indexed="true" stored="true"/> <dynamicfield name="*_b" type="boolean" indexed="true" stored="true"/> <dynamicfield name="*_f" type="sfloat" indexed="true" stored="true"/> <dynamicfield name="*_d" type="sdouble" indexed="true" stored="true"/> <dynamicfield name="*_dt" type="date" indexed="true" stored="true"/> <dynamicfield name="random*" type="random" /> <dynamicfield name="*_coordinate" type="tdouble" indexed="true" stored="false" /> </fields> <uniquekey>storeproductid</uniquekey> <!-- field queryparser use when explicit fieldname absent --> <defaultsearchfield>text</defaultsearchfield> <!-- solrqueryparser configuration: defaultoperator="and|or" --> <solrqueryparser defaultoperator="or"/> <copyfield source="storeid" dest="text"/> <copyfield source="storeproductid" dest="text"/> <copyfield source="noofnamedrelatedstores" dest="text"/> <copyfield source="hasrelatedstores" dest="text"/> <copyfield source="addressid" dest="text"/> <copyfield source="latitude" dest="text"/> <copyfield source="longitude" dest="text"/> <copyfield source="city" dest="text"/> <copyfield source="location" dest="text"/> <copyfield source="urllocation" dest="text"/> <copyfield source="addressline1" dest="text"/> <copyfield source="addressline2" dest="text"/> <copyfield source="zipcode" dest="text"/> <copyfield source="storename" dest="text"/> <copyfield source="storeurlname" dest="text"/> <copyfield source="cityid" dest="text"/> <copyfield source="description" dest="text"/> <copyfield source="websiteurl" dest="text"/> <copyfield source="email" dest="text"/> <copyfield source="phone" dest="text"/> <copyfield source="mobile" dest="text"/> <copyfield source="storetypeid" dest="text"/> <copyfield source="clientrelationshiptype" dest="text"/> <copyfield source="storeimage" dest="text"/> <copyfield source="productid" dest="text"/> <copyfield source="productname" dest="text"/> <copyfield source="producturlname" dest="text"/> <copyfield source="productdescription" dest="text"/> <copyfield source="productimage" dest="text"/> <copyfield source="brandid" dest="text"/> <copyfield source="brandname" dest="text"/> <copyfield source="brandurlname" dest="text"/> <copyfield source="categoryid" dest="text"/> <copyfield source="categoryname" dest="text"/> <copyfield source="categoryurlname" dest="text"/> <copyfield source="menudisplayname" dest="text"/> <copyfield source="groupid" dest="text"/> <copyfield source="storecount" dest="text"/> <copyfield source="author" dest="text"/> <copyfield source="isbn10" dest="text"/> <copyfield source="isbn13" dest="text"/> <copyfield source="olid" dest="text"/> <copyfield source="ean13" dest="text"/> <copyfield source="upca" dest="text"/> <copyfield source="upce" dest="text"/> <copyfield source="language" dest="text"/> <copyfield source="format" dest="text"/> <copyfield source="publisher" dest="text"/> <copyfield source="subject" dest="text"/> <copyfield source="city" dest="suggestion_text"/> <copyfield source="location" dest="suggestion_text"/> <copyfield source="zipcode" dest="suggestion_text"/> <copyfield source="storename" dest="suggestion_text"/> <copyfield source="productname" dest="suggestion_text"/> <copyfield source="brandname" dest="suggestion_text"/> <copyfield source="categoryname" dest="suggestion_text"/> <copyfield source="author" dest="suggestion_text"/> <copyfield source="isbn10" dest="suggestion_text"/> <copyfield source="isbn13" dest="suggestion_text"/> <copyfield source="olid" dest="suggestion_text"/> <copyfield source="ean13" dest="suggestion_text"/> <copyfield source="upca" dest="suggestion_text"/> <copyfield source="upce" dest="suggestion_text"/> <copyfield source="language" dest="suggestion_text"/> <copyfield source="format" dest="suggestion_text"/> <copyfield source="publisher" dest="suggestion_text"/> <copyfield source="subject" dest="suggestion_text"/> </schema>
it looks stated behavior of range queries doublefield. according api doc of class, "values evaluated in unicode string order, not numeric order", , "new schemas should use triedoublefield". triedoublefield used in field definition of "double" in latest version of example solr schema.
Comments
Post a Comment