Re: Applying boosting for keyword search
The issue is absolute ordering (sort) and influencing (boosting). Here's an example score no boosts popularity doc1 100 1 doc2 75 2 doc3 10 3 Sorting by popularity asc will return doc1, doc2, doc3 Sorting by popularity desc will return doc3, doc2, doc1 It doesn't matter at all what the score is. When sorting by popularity ascending will sort in this order if the score of doc3 is 10,000 and the score of doc1 is 100. sorting totally overrides ranking. Boosting, on the other hand, only changes order if you sort by score (which is the default, ranking). So sorting by score desc would return doc1, doc2, doc3. Now, say you boost the docs such that you add 50 to the score for doc2. The returned order would be doc2, doc1, doc3. The deal here is that boosting changes the _score_, but doesn't impose an absolute ordering. Sorting by the value in a field imposes an absolute, unchanging ordering. Best, Erick On Tue, May 27, 2014 at 12:30 AM, manju16832003 manju16832...@gmail.com wrote: Hi Erick, Your explanation leads me to one question :-) if */select?q=featured:true^100fq=make:toyotasort=featured_date desc,price asc* The above query, without edismax, works well because, If I'm not mistaken its boosting document by value method. So I'm boosting all my documents with the value featured=true and all those documents would be sorted by their featured date in descending order (Latest featured documents) and price (lower to higher). My question is, If we were to boost the documents based on a value, how could we make sure the order of the documents? For example : https://wiki.apache.org/solr/SolrRelevancyFAQ defType=dismaxqf=textq=supervilliansbf=popularity In the above case, all the documents that contains the word *popularity* would be on top depends on their score. However, I want to order the documents by certain criteria that contains the word popularity So we would have to use *sort* to order the documents. if we say, boosting has no or almost no effect if we use sort, then whats the contradiction story between *sort* and *boost* :-) would be interesting to know the answer -- View this message in context: http://lucene.472066.n3.nabble.com/Applying-boosting-for-keyword-search-tp4137523p4138241.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Applying boosting for keyword search
Hi Jack, Thank you for the suggestions. :-) -- View this message in context: http://lucene.472066.n3.nabble.com/Applying-boosting-for-keyword-search-tp4137523p4138239.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Applying boosting for keyword search
Hi Erick, Your explanation leads me to one question :-) if */select?q=featured:true^100fq=make:toyotasort=featured_date desc,price asc* The above query, without edismax, works well because, If I'm not mistaken its boosting document by value method. So I'm boosting all my documents with the value featured=true and all those documents would be sorted by their featured date in descending order (Latest featured documents) and price (lower to higher). My question is, If we were to boost the documents based on a value, how could we make sure the order of the documents? For example : https://wiki.apache.org/solr/SolrRelevancyFAQ defType=dismaxqf=textq=supervilliansbf=popularity In the above case, all the documents that contains the word *popularity* would be on top depends on their score. However, I want to order the documents by certain criteria that contains the word popularity So we would have to use *sort* to order the documents. if we say, boosting has no or almost no effect if we use sort, then whats the contradiction story between *sort* and *boost* :-) would be interesting to know the answer -- View this message in context: http://lucene.472066.n3.nabble.com/Applying-boosting-for-keyword-search-tp4137523p4138241.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Applying boosting for keyword search
Your boosting in these examples is almost, but not quite totally, useless. Here's why: sort=price asc The only time the score of the doc (which is what boosting influences) will be used for ordering the output is as a tie-breaker when the price is _exactly_ the same. FWIW, Erick On Wed, May 21, 2014 at 9:53 PM, Jack Krupansky j...@basetechnology.com wrote: Your original message had q=toyota featured:true^100 and also using bq - both are valid. If either is not working for you, please be specific about what exactly is not behaving as you expected - what the symptom is. Sometimes you have to experiment with the boost factor. -- Jack Krupansky -Original Message- From: manju16832003 Sent: Thursday, May 22, 2014 12:37 AM To: solr-user@lucene.apache.org Subject: Re: Applying boosting for keyword search Hi Jack, Thanks for your help. I do not want to boost *keyword* field. I apply full text search no keyword field and boost based on another field *featured*. Also qf field allows us to boost the field without values. I would like to boost with value Ex: qf=featured:true^100 - I don't think this is correct Example : Get all Toyota 2013 Car listings, which are featured listings. Field *featured* is a boolean flag So I tried this way /select?q=toyota 2014defType=edismaxq.op=ANDqf=featured:true^100wt=jsonsort=price asc No luck :-(. My boosting works fine without keyword, I only have issue having keyword search. -- View this message in context: http://lucene.472066.n3.nabble.com/Applying-boosting-for-keyword-search-tp4137523p4137528.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Applying boosting for keyword search
Just add the boost to the keyword: q=toyota^100. Or, use the dismax or edismax query parsers and then the boost can be specified for the field: qf=keyword^100. -- Jack Krupansky -Original Message- From: manju16832003 Sent: Thursday, May 22, 2014 12:04 AM To: solr-user@lucene.apache.org Subject: Applying boosting for keyword search HI, I have a scenario where by I apply boosting in the following two cases - Usual search, by user selection - Keyword search. I have a field *keyword* that is copy/combination of many fields When user does the usual query, my boosting works fines, this is how I do boosting /select?q=featured:true^100fq=make:toyotasort=price asc This works fine However I'm confused, how we could perform boosting using *keyword* serach /select?q=toyotadefType=edismaxbq=featured:true^100sort=price asc This does not work as I expected. In solrconfig.xml my default field set to keyword (df=keyword) My question, how could I perform boosting with keyword search? when we are using keyword search, user keys goes into *q* param, so where Can I specify the boosting query? I tried with *bq* and *function query*, No luck :-(. Can I perform like this /select?q=toyota featured:true^100 Keyword and boosting done with *q* param. -- View this message in context: http://lucene.472066.n3.nabble.com/Applying-boosting-for-keyword-search-tp4137523.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Applying boosting for keyword search
Hi Jack, Thanks for your help. I do not want to boost *keyword* field. I apply full text search no keyword field and boost based on another field *featured*. Also qf field allows us to boost the field without values. I would like to boost with value Ex: qf=featured:true^100 - I don't think this is correct Example : Get all Toyota 2013 Car listings, which are featured listings. Field *featured* is a boolean flag So I tried this way /select?q=toyota 2014defType=edismaxq.op=ANDqf=featured:true^100wt=jsonsort=price asc No luck :-(. My boosting works fine without keyword, I only have issue having keyword search. -- View this message in context: http://lucene.472066.n3.nabble.com/Applying-boosting-for-keyword-search-tp4137523p4137528.html Sent from the Solr - User mailing list archive at Nabble.com.
Re: Applying boosting for keyword search
Your original message had q=toyota featured:true^100 and also using bq - both are valid. If either is not working for you, please be specific about what exactly is not behaving as you expected - what the symptom is. Sometimes you have to experiment with the boost factor. -- Jack Krupansky -Original Message- From: manju16832003 Sent: Thursday, May 22, 2014 12:37 AM To: solr-user@lucene.apache.org Subject: Re: Applying boosting for keyword search Hi Jack, Thanks for your help. I do not want to boost *keyword* field. I apply full text search no keyword field and boost based on another field *featured*. Also qf field allows us to boost the field without values. I would like to boost with value Ex: qf=featured:true^100 - I don't think this is correct Example : Get all Toyota 2013 Car listings, which are featured listings. Field *featured* is a boolean flag So I tried this way /select?q=toyota 2014defType=edismaxq.op=ANDqf=featured:true^100wt=jsonsort=price asc No luck :-(. My boosting works fine without keyword, I only have issue having keyword search. -- View this message in context: http://lucene.472066.n3.nabble.com/Applying-boosting-for-keyword-search-tp4137523p4137528.html Sent from the Solr - User mailing list archive at Nabble.com.