On Fri, Oct 29, 2010 at 9:30 AM, Ryan Walker <r...@recruitmilitary.com> wrote: > > We are launching a new version of our job board helping returning veterans > find a civilian job, and we chose Solr and Sunspot[1] to power our search. We > really didn't consider the power users in the HR world who are trained to use > boolean search, for example: > > "Engineer" AND ("Electrical" OR "Mechanical") > > Sunspot supports the Dismax request handler, which unfortunately does not > handle the query above properly. So we read about eDismax and that it was > baked into Solr 1.5. At the same time, Sunspot has switched from LocalSolr > integration to storing a geohash in a full-text searchable field. > > We're having some problems with some complex queries that Sunspot generates: > > INFO: [] webapp=/solr path=/select > params={fl=+score&start=0&q=query:"{!dismax+qf%3D'title_text+description_text'}Ruby+on+Rails+Developer"+(location_details_s:dngythdb25fu^1.0+OR+location_details_s:dngythdb25f^0.0625+OR+location_details_s:dngythdb25*^0.00391+OR+location_details_s:dngythdb2*^0.000244+OR+location_details_s:dngythdb*^0.0000153+OR+location_details_s:dngythd*^0.000000954+OR+location_details_s:dngyth*^0.0000000596+OR+location_details_s:dngyt*^0.00000000373+OR+location_details_s:dngy*^0.000000000233+OR+location_details_s:dng*^0.0000000000146)&wt=ruby&fq=type:Job&defType=edismax&rows=20} > hits=1 status=0 QTime=13 > > Under Dismax no results are returned for this query, however, as you can see > above with eDismax a result is returned -- the only difference between the > two queries are '&defType=edismax' vs '&defType=dismax'
That's to be expected. Dismax doesn't even support fielded queries (where you specify the fieldname in the query itself) so this clause is treated all as text: (location_details_s:dngythdb25fu^1.0 and dismax QP will be looking for tokens like "location_details_s" "dngythdb25fu" (assuming tokenization would split on the non-alphanumeric chars) in your text fields. -Yonik http://www.lucidimagination.com