Pete, bq works only with q.alt query and not with q queries. So, in your case you would be using qf parameter for field boosting, you will have to give both the fields in qf parameter i.e. both title and media.
try this <str name=qf>media^1.0 title^100.0</str> Pete Smith-3 wrote: > > Hi Amit, > > Thanks again for your reply. I am understanding it a bit better but I > think it would help if I posted an example. Say I have three records: > > <doc> > <long name="id">1</long> > <str name="media">BLU-RAY</str> > <str name="title">Indiana Jones and the Kingdom of the Crystal > Skull</str> > </doc> > <doc> > <long name="id">2</long> > <str name="media">DVD</str> > <str name="title">Indiana Jones and the Kingdom of the Crystal > Skull</str> > </doc> > <doc> > <long name="id">3</long> > <str name="media">DVD</str> > <str name="title">Casino Royale</str> > </doc> > > Now, if I search for indiana: select?q=indiana > > I want the first two rows to come back (not the third as it does not > contain 'indiana'). I would like record 2 to be scored higher than > record 1 as it's media type is DVD. > > At the moment I have in my config: > > <str name="qf">title</str> > > And i was trying to boost by media having a specific value by using 'bq' > but from what you told me that is incorrect. > > Cheers, > Pete > > > On Fri, 2009-03-13 at 03:21 -0700, dabboo wrote: >> Pete, >> >> Sorry, if wasnt clear. Here is the explanation. >> >> Suppose you have 2 records and they have films and media as 2 columns. >> >> Now first record has values like films="Indiana" and media="blue ray" >> and 2nd record has values like films="Bond" and media="Indiana" >> >> Values for qf parameters >> >> <str name="qf">media^2.0 films^1.0</str> >> >> Now, search for q=Indiana .. it should display both of the records but >> record #2 will display above than the 1st. >> >> Let me know if you still have questions. >> >> Cheers, >> amit >> >> >> Pete Smith-3 wrote: >> > >> > Hi Amit, >> > >> > Thanks very much for your reply. What you said makes things a bit >> > clearer but I am still a bit confused. >> > >> > On Thu, 2009-03-12 at 23:14 -0700, dabboo wrote: >> >> If you want to boost the records with their field value then you must >> use >> >> q >> >> query parameter instead of q.alt. 'q' parameter actually uses qf >> >> parameters >> >> from solrConfig for field boosting. >> > >> >>From the documentation for Dismax queries, I thought that "q" is simply >> > a keyword parameter: >> > >> >>From http://wiki.apache.org/solr/DisMaxRequestHandler: >> > q >> > The guts of the search defining the main "query". This is designed to >> be >> > support raw input strings provided by users with no special escaping. >> > '+' and '-' characters are treated as "mandatory" and "prohibited" >> > modifiers for the subsequent terms. Text wrapped in balanced quote >> > characters '"' are treated as phrases, any query containing an odd >> > number of quote characters is evaluated as if there were no quote >> > characters at all. Wildcards in this "q" parameter are not supported. >> > >> > And I thought 'qf' is a list of fields and boost scores: >> > >> >>From http://wiki.apache.org/solr/DisMaxRequestHandler: >> > qf (Query Fields) >> > List of fields and the "boosts" to associate with each of them when >> > building DisjunctionMaxQueries from the user's query. The format >> > supported is fieldOne^2.3 fieldTwo fieldThree^0.4, which indicates that >> > fieldOne has a boost of 2.3, fieldTwo has the default boost, and >> > fieldThree has a boost of 0.4 ... this indicates that matches in >> > fieldOne are much more significant than matches in fieldTwo, which are >> > more significant than matches in fieldThree. >> > >> > But if I want to, say, search for films with 'indiana' in the title, >> > with media=DVD scoring higher than media=BLU-RAY then do I need to do >> > something like: >> > >> > solr/select?q=indiana >> > >> > And in my config: >> > >> > <str name="qf">media^2</str> >> > >> > But I don't see where the actual *contents* of the media field would >> > determine the boost. >> > >> > Sorry if I have misunderstood what you mean. >> > >> > Cheers, >> > Pete >> > >> >> Pete Smith-3 wrote: >> >> > >> >> > Hi, >> >> > >> >> > I have managed to build an index in Solr which I can search on >> keyword, >> >> > produce facets, query facets etc. This is all working great. I have >> >> > implemented my search using a dismax query so it searches >> predetermined >> >> > fields. >> >> > >> >> > However, my results are coming back sorted by score which appears to >> be >> >> > calculated by keyword relevancy only. I would like to adjust the >> score >> >> > where fields have pre-determined values. I think I can do this with >> >> > boost query and boost functions but the documentation here: >> >> > >> >> > >> >> >> http://wiki.apache.org/solr/DisMaxRequestHandler#head-6862070cf279d9a09bdab971309135c7aea22fb3 >> >> > >> >> > Is not particularly helpful. I tried adding adding a bq argument to >> my >> >> > search: >> >> > >> >> > &bq=media:DVD^2 >> >> > >> >> > (yes, this is an index of films!) but I find when I start adding >> more >> >> > and more: >> >> > >> >> > &bq=media:DVD^2&bq=media:BLU-RAY^1.5 >> >> > >> >> > I find the negative results - e.g. films that are DVD but are not >> >> > BLU-RAY get negatively affected in their score. In the end it all >> seems >> >> > to even out and my score is as it was before i started boosting. >> >> > >> >> > I must be doing this wrong and I wonder whether "boost function" >> comes >> >> > in somewhere. Any ideas on how to correctly use boost? >> >> > >> >> > Cheers, >> >> > Pete >> >> > >> >> > -- >> >> > Pete Smith >> >> > Developer >> >> > >> >> > No.9 | 6 Portal Way | London | W3 6RU | >> >> > T: +44 (0)20 8896 8070 | F: +44 (0)20 8896 8111 >> >> > >> >> > LOVEFiLM.com >> >> > >> >> > >> >> >> > -- >> > Pete Smith >> > Developer >> > >> > No.9 | 6 Portal Way | London | W3 6RU | >> > T: +44 (0)20 8896 8070 | F: +44 (0)20 8896 8111 >> > >> > LOVEFiLM.com >> > >> > >> > -- > Pete Smith > Developer > > No.9 | 6 Portal Way | London | W3 6RU | > T: +44 (0)20 8896 8070 | F: +44 (0)20 8896 8111 > > LOVEFiLM.com > > -- View this message in context: http://www.nabble.com/How-to-correctly-boost-results-in-Solr-Dismax-query-tp22476204p22494196.html Sent from the Solr - User mailing list archive at Nabble.com.