By the way, I was wrong when saying that using bf instead of !boost did not work either. I probably hit more than one problem at the same time when I first tested that. I've retested now and this works:
/select?q=+id:12345^0.000001 +_query_:"{!dismax v=$qq}"&bf=recip(ms(NOW/DAY,published_date),3.16e-11,1,1)&qq=user_text&qf=text1^2 text2&pf=text1^2 text2&tie=0.1&q.alt=*:*&hl=true&hl.fl=text1 text2&hl.mergeContiguous=true But I don't get the multiplicative boost I'd like to use... El 19/05/2011, a las 11:31, Juan Antonio Farré Basurte escribió: > Hi, > > The query is generated dynamically and can be more or less complex depending > on different parameters. I'm also not free to give many details of our > implementation, but I'll give you the minimal query string that fails and the > relevant pieces of the config. > The query string is: > > /select?q=+id:12345^0.000001 +_query_:"{!boost b=$dateboost v=$qq > deftype=dismax}"&dateboost=recip(ms(NOW/DAY,published_date),3.16e-11,1,1)&qq=user_text&qf=text1^2 > text2&pf=text1^2 text2&tie=0.1&q.alt=*:*&hl=true&hl.fl=text1 > text2&hl.mergeContiguous=true > > where id is an int and text1 and text2 are type text. hl.fl has proven to be > necessary whenever I use dismax in an inner query. Ohterwise, only text2 (the > default field) is highlighted, and not both fields appearing in qf. For > example, > q={!dismax v=$qq}&....... does not require hl.fl to highlight both text1 and > text2. > q=+_query_:"{!dismax v=$qq}"&....... only highlights text2, unless I specify > hl.fl. > > The given query is probably not minimal in the sense that some of the > dismax-related parameters can be omitted and the query still fails. But the > one given always fails (and adding more complexity to it does not make it > work, quite obviously). Unfortunately, hl.requireFieldMatch=false does not > help. > > Request handler config is the following: > > <requestHandler name="standard" class="solr.SearchHandler" default="true"> > <lst name="defaults"> > <str name="echoParams">explicit</str> > </lst> > </requestHandler> > > Highlighter config is the following: > > <highlighting> > <fragmenter name="gap" class="org.apache.solr.highlight.GapFragmenter" > default="true"> > <lst name="defaults"> > <int name="hl.fragsize">100</int> > </lst> > </fragmenter> > <fragmenter name="regex" class="org.apache.solr.highlight.RegexFragmenter"> > <lst name="defaults"> > <int name="hl.fragsize">70</int> > <float name="hl.regex.slop">0.5</float> > <str name="hl.regex.pattern">[-\w ,/\n\"']{20,200}</str> > </lst> > </fragmenter> > <formatter name="html" class="org.apache.solr.highlight.HtmlFormatter" > default="true"> > <lst name="defaults"> > <str name="hl.simple.pre"><em></str> > <str name="hl.simple.post"></em></str> > </lst> > </formatter> > </highlighting> > > If there's any other information that could be useful, just ask. > Thank you very much for your help, > > Juan > > El 16/05/2011, a las 23:18, Chris Hostetter escribió: > >> >> : As I said in my previous message, if I issue: >> : q=+field1:range +field2:value +_query_:{!dismax v=$qq} >> : highlighting works. I've just discovered the problem is not just with >> {!boost...}. If I just add a bf parameter to the previous query, >> highlighting also fails. >> : Anybody knows what can be happening? I'm really stuck on this problem... >> >> Just a hunch, but i suspect the problem has to do with >> highlighter (or maybe it's the fragment generator?) trying to determine >> matches from query types it doens't understand >> >> I thought there was a query param you could use to tell the highlighter to >> use an "alternate" query string (that would be simpler) instead of the >> real query ... but i'm not seeing it in the docs. >> >> hl.requireFieldMatch=false might also help (not sure) >> >> In general it would probably be helpful for folks if you could post the >> *entire* request you are making (full query string and all request params) >> along with the solrconfig.xml sections that show how your request handler >> and highlighter are configured. >> >> >> >> -Hoss >