You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by rachun <ra...@gmail.com> on 2014/07/02 17:02:22 UTC

Customise score

Dear all,

Could anybody suggest me how to customize the score?
So, I have data like this ..

{ID : '0001', Title :'MacBookPro',Price: 400,Base_score:'121.2'}
{ID : '0002', Title :'MacBook',Price: 350,Base_score:'100.2'}
{ID : '0003', Title :'Laptop',Price: 300,Base_score:'155.7'}

Notice that I have ID field for uniqueKey.
When I query q=MacBook & sort=score desc
it will return result something like this

{ID : '0002', Title :'MacBook',Price: 350,Base_score:'100.2',score:1.45}
{ID : '0001', Title :'MacBookPro',Price: 400,Base_score:'121.2',score:1.11}

But I want solr to produce score by also using my Base_score. The score
should be something like this

- score = 100.2 + 1.45 = 101.65
- score = 121.2 + 1.11 = 122.31

Then the result should be something like this..

{ID : '0001', Title :'MacBookPro',Price:
400,Base_score:'121.2',score:122.31}
{ID : '0002', Title :'MacBook',Price: 350,Base_score:'100.2',score:101.65}

I'm not familia with Java so I can't write my own function as somebody do.
So, which is the easiest way to do this work using existing function from
solr?

Thank you very much,
Chun.




--
View this message in context: http://lucene.472066.n3.nabble.com/Customise-score-tp4145214.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Customise score

Posted by rachun <ra...@gmail.com>.
Hi Ahmet,
I also tried this 
.../select?q=MacBook&sort=sum(base_score, score)+desc&wt=json&indent=true

I got the same error 

"error":{
    "msg":"Can't determine a Sort Order (asc or desc) in sort spec
'sum(base_score, score) desc', pos=15",
    "code":400}}

Best regards,
Chun



--
View this message in context: http://lucene.472066.n3.nabble.com/Customise-score-tp4145214p4145320.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Customise score

Posted by rachun <ra...@gmail.com>.
Hi Jack,

I just found out that the sort it doesn't work right for the next page. The
response result show that "numFound":23850. So I tried this

.../select?q=MacBook&sort=sum(base_score,query($q,0))+desc&wt=json&indent=true&start=100

The summary of base_score and document sort at the next page should not be
greater than the previous page but it does.
So, I would like to ask you a few questions

1) sort=sum(base_score,query($q,0))+desc   does it sort the whole result or
just the current page?
2) sum(base_score,query($q,0)) I curious  0 does it mean boost score?
3) if this solution it doesn't work for me could you please suggest me other
solution?


Thank you very much for your help,
Chun.



--
View this message in context: http://lucene.472066.n3.nabble.com/Customise-score-tp4145214p4145417.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Customise score

Posted by rachun <ra...@gmail.com>.
 Hi, Jack,

Thank you very much for you solution its works!

I'm sorry that I didn't make it clear at the beginning for 'score' which i
mean document score (solr produce it at query time).

Thank you very much for all of you,
Chun.








--
View this message in context: http://lucene.472066.n3.nabble.com/Customise-score-tp4145214p4145359.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Customise score

Posted by Jack Krupansky <ja...@basetechnology.com>.
You probably don't have a field named "score". That said, the Solr error 
message is not very useful at all!

If you want to reference the document score, I don't think there is a direct 
way to do it, but you can indirectly by using the query function:

.../select?q=MacBook&sort=sum(base_score,query($q,0))+desc&wt=json&indent=true

-- Jack Krupansky

-----Original Message----- 
From: rachun
Sent: Wednesday, July 2, 2014 7:44 PM
To: solr-user@lucene.apache.org
Subject: Re: Customise score

Hi Jack,

I tried as you suggest

.../select?q=MacBook&sort=sum(base_score,score)+desc&wt=json&indent=true

but it didn't work and I got this error message

"error":{
    "msg":"sort param could not be parsed as a query, and is not a field
that exists in the index: sum(base_score,score)",
    "code":400}}

so, when I try something like this

.../select?q=MacBook&sort=sum(base_score,base_score)+desc&wt=json&indent=true

it works fine.
How to archive this, any idea?

Best Regards,
Chun





--
View this message in context: 
http://lucene.472066.n3.nabble.com/Customise-score-tp4145214p4145322.html
Sent from the Solr - User mailing list archive at Nabble.com. 


Re: Customise score

Posted by rachun <ra...@gmail.com>.
Hi Jack,

I tried as you suggest 

.../select?q=MacBook&sort=sum(base_score,score)+desc&wt=json&indent=true 

but it didn't work and I got this error message

 "error":{
    "msg":"sort param could not be parsed as a query, and is not a field
that exists in the index: sum(base_score,score)",
    "code":400}}

so, when I try something like this

.../select?q=MacBook&sort=sum(base_score,base_score)+desc&wt=json&indent=true 

it works fine.
How to archive this, any idea?

Best Regards,
Chun





--
View this message in context: http://lucene.472066.n3.nabble.com/Customise-score-tp4145214p4145322.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Customise score

Posted by Jack Krupansky <ja...@basetechnology.com>.
I think the white space after the comma  is the culprit. No white space is 
allowed in function queries that are embedded, such as in the sort 
parameter.

-- Jack Krupansky

-----Original Message----- 
From: Ahmet Arslan
Sent: Wednesday, July 2, 2014 2:19 PM
To: solr-user@lucene.apache.org
Subject: Re: Customise score

Hi,


Why did you use upper case? What happens when you use : sort=sum(...



On Wednesday, July 2, 2014 6:23 PM, rachun <ra...@gmail.com> wrote:



Gora,
firstly I would like thank you for your quick response.

.../select?q=MacBook&sort=SUM(base_score, score)+desc&wt=json&indent=true

I tried that but it didn't work and I got this error message

"error":{
    "msg":"Can't determine a Sort Order (asc or desc) in sort spec
'SUM(base_score, score) desc', pos=15",
    "code":400}}

Best Regards,
Chun




--
View this message in context: 
http://lucene.472066.n3.nabble.com/Customise-score-tp4145214p4145216.html
Sent from the Solr - User mailing list archive at Nabble.com. 


Re: Customise score

Posted by Ahmet Arslan <io...@yahoo.com.INVALID>.
Hi,


Why did you use upper case? What happens when you use : sort=sum(...



On Wednesday, July 2, 2014 6:23 PM, rachun <ra...@gmail.com> wrote:



Gora,
firstly I would like thank you for your quick response.

.../select?q=MacBook&sort=SUM(base_score, score)+desc&wt=json&indent=true

I tried that but it didn't work and I got this error message 

"error":{
    "msg":"Can't determine a Sort Order (asc or desc) in sort spec
'SUM(base_score, score) desc', pos=15",
    "code":400}}

Best Regards,
Chun




--
View this message in context: http://lucene.472066.n3.nabble.com/Customise-score-tp4145214p4145216.html
Sent from the Solr - User mailing list archive at Nabble.com.


Re: Customise score

Posted by rachun <ra...@gmail.com>.
Gora,
firstly I would like thank you for your quick response.

.../select?q=MacBook&sort=SUM(base_score, score)+desc&wt=json&indent=true

I tried that but it didn't work and I got this error message 

"error":{
    "msg":"Can't determine a Sort Order (asc or desc) in sort spec
'SUM(base_score, score) desc', pos=15",
    "code":400}}

Best Regards,
Chun




--
View this message in context: http://lucene.472066.n3.nabble.com/Customise-score-tp4145214p4145216.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Customise score

Posted by Gora Mohanty <go...@mimirtech.com>.
On 2 July 2014 20:32, rachun <ra...@gmail.com> wrote:
> Dear all,
>
> Could anybody suggest me how to customize the score?
> So, I have data like this ..
>
> {ID : '0001', Title :'MacBookPro',Price: 400,Base_score:'121.2'}
> {ID : '0002', Title :'MacBook',Price: 350,Base_score:'100.2'}
> {ID : '0003', Title :'Laptop',Price: 300,Base_score:'155.7'}
>
> Notice that I have ID field for uniqueKey.
> When I query q=MacBook & sort=score desc
> it will return result something like this
>
> {ID : '0002', Title :'MacBook',Price: 350,Base_score:'100.2',score:1.45}
> {ID : '0001', Title :'MacBookPro',Price: 400,Base_score:'121.2',score:1.11}
>
> But I want solr to produce score by also using my Base_score. The score
> should be something like this
>
> - score = 100.2 + 1.45 = 101.65
> - score = 121.2 + 1.11 = 122.31

You should use Solr's sum function query:
http://wiki.apache.org/solr/FunctionQuery#sum
q=MacBook&sort=sum(Base_score, score)+desc should do it.

Regards,
Gora