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 Stefan Moises <mo...@shoptimax.de> on 2012/03/05 14:01:56 UTC

JoinQuery and document score problem

Hi list,

we are using the kinda new JoinQuery feature in Solr 4.x Trunk and are 
facing a problem (and also Solr 3.5. with the JoinQuery patch applied) ...
We have documents with a parent - child relationship where a parent can 
have any number of childs, parents being identified by the field "parentid".

Now after a join (from the field "parentid" to "id") to get the parent 
documents only (and to filter out the "variants"/childs of the parent 
documents), the document score gets "lost" - all the returned documents 
have a score of "1.0" - if we remove the join from the query, the scores 
are fine again. Here is an example call:

http://localhost:8983/solr4/select?qt=dismax&q={!join%20from=parentid%20to=id}foo&fl=id,title,score

All the results now have a score of "1.0", which makes the order of 
results pretty much random and the scoring therefore useless... :(
(the same applies for the "standard" query type, so it's not the dismax 
parser)

I can't imagine this is "expected" behaviour...? Is there an easy way to 
get the "right" scores for the joined documents (e.g. using the max. 
score of the childs)? Can the scoring of "joined" documents be 
configured somewhere / somehow?

Thanks a lot in advance,
best regards,
Stefan

-- 
Mit den besten Grüßen aus Nürnberg,
Stefan Moises

*******************************************
Stefan Moises
Senior Softwareentwickler
Leiter Modulentwicklung

shoptimax GmbH
Guntherstraße 45 a
90461 Nürnberg
Amtsgericht Nürnberg HRB 21703
GF Friedrich Schreieck

Tel.: 0911/25566-25
Fax:  0911/25566-29
moises@shoptimax.de
http://www.shoptimax.de
*******************************************



Re: JoinQuery and document score problem

Posted by denl0 <da...@gmail.com>.
How did you solve this. I'm facing a similar issue...



--
View this message in context: http://lucene.472066.n3.nabble.com/JoinQuery-and-document-score-problem-tp3800636p4034511.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: JoinQuery and document score problem

Posted by Stefan Moises <mo...@shoptimax.de>.
Hi Martijn,

thanks for your answer - unfortunately we need the JoinQuery for the 
main query, not only for the filters...
Looks like we have to get the scoring for "query-time joins" working on 
our own then, maybe inspired by the "BlockJoin" Query (index-time join) 
functionality (which we cannot use because we can't submit the docs in 
"blocks" with the CSV or DIH importers) - where the scoring seems to 
work exactly as we'd need it.

Cheers,
Stefan

Am 06.03.2012 10:30, schrieb Martijn v Groningen:
> Hi Stefan,
>
> The score isn't "moved" from the "from" side to the "to" side and as far as
> I know there isn't a way to configure the scoring of the joined documents.
> The Solr join query isn't a real join (like in sql) and should be used as
> filtering mechanism. The best way is to achieve that is to put the join
> query inside a fq parameter.
>
> Martijn
>
> On 5 March 2012 14:01, Stefan Moises<mo...@shoptimax.de>  wrote:
>
>> Hi list,
>>
>> we are using the kinda new JoinQuery feature in Solr 4.x Trunk and are
>> facing a problem (and also Solr 3.5. with the JoinQuery patch applied) ...
>> We have documents with a parent - child relationship where a parent can
>> have any number of childs, parents being identified by the field "parentid".
>>
>> Now after a join (from the field "parentid" to "id") to get the parent
>> documents only (and to filter out the "variants"/childs of the parent
>> documents), the document score gets "lost" - all the returned documents
>> have a score of "1.0" - if we remove the join from the query, the scores
>> are fine again. Here is an example call:
>>
>> http://localhost:8983/solr4/**select?qt=dismax&q={!join%**
>> 20from=parentid%20to=id}foo&**fl=id,title,score<http://localhost:8983/solr4/select?qt=dismax&q=%7B!join%20from=parentid%20to=id%7Dfoo&fl=id,title,score>
>>
>> All the results now have a score of "1.0", which makes the order of
>> results pretty much random and the scoring therefore useless... :(
>> (the same applies for the "standard" query type, so it's not the dismax
>> parser)
>>
>> I can't imagine this is "expected" behaviour...? Is there an easy way to
>> get the "right" scores for the joined documents (e.g. using the max. score
>> of the childs)? Can the scoring of "joined" documents be configured
>> somewhere / somehow?
>>
>> Thanks a lot in advance,
>> best regards,
>> Stefan
>>
>> --
>> Mit den besten Grüßen aus Nürnberg,
>> Stefan Moises
>>
>> *********************************************
>> Stefan Moises
>> Senior Softwareentwickler
>> Leiter Modulentwicklung
>>
>> shoptimax GmbH
>> Guntherstraße 45 a
>> 90461 Nürnberg
>> Amtsgericht Nürnberg HRB 21703
>> GF Friedrich Schreieck
>>
>> Tel.: 0911/25566-25
>> Fax:  0911/25566-29
>> moises@shoptimax.de
>> http://www.shoptimax.de
>> *********************************************
>>
>>
>>
>

-- 
Mit den besten Grüßen aus Nürnberg,
Stefan Moises

*******************************************
Stefan Moises
Senior Softwareentwickler
Leiter Modulentwicklung

shoptimax GmbH
Guntherstraße 45 a
90461 Nürnberg
Amtsgericht Nürnberg HRB 21703
GF Friedrich Schreieck

Tel.: 0911/25566-25
Fax:  0911/25566-29
moises@shoptimax.de
http://www.shoptimax.de
*******************************************



Re: JoinQuery and document score problem

Posted by Martijn v Groningen <ma...@gmail.com>.
Hi Stefan,

The score isn't "moved" from the "from" side to the "to" side and as far as
I know there isn't a way to configure the scoring of the joined documents.
The Solr join query isn't a real join (like in sql) and should be used as
filtering mechanism. The best way is to achieve that is to put the join
query inside a fq parameter.

Martijn

On 5 March 2012 14:01, Stefan Moises <mo...@shoptimax.de> wrote:

> Hi list,
>
> we are using the kinda new JoinQuery feature in Solr 4.x Trunk and are
> facing a problem (and also Solr 3.5. with the JoinQuery patch applied) ...
> We have documents with a parent - child relationship where a parent can
> have any number of childs, parents being identified by the field "parentid".
>
> Now after a join (from the field "parentid" to "id") to get the parent
> documents only (and to filter out the "variants"/childs of the parent
> documents), the document score gets "lost" - all the returned documents
> have a score of "1.0" - if we remove the join from the query, the scores
> are fine again. Here is an example call:
>
> http://localhost:8983/solr4/**select?qt=dismax&q={!join%**
> 20from=parentid%20to=id}foo&**fl=id,title,score<http://localhost:8983/solr4/select?qt=dismax&q=%7B!join%20from=parentid%20to=id%7Dfoo&fl=id,title,score>
>
> All the results now have a score of "1.0", which makes the order of
> results pretty much random and the scoring therefore useless... :(
> (the same applies for the "standard" query type, so it's not the dismax
> parser)
>
> I can't imagine this is "expected" behaviour...? Is there an easy way to
> get the "right" scores for the joined documents (e.g. using the max. score
> of the childs)? Can the scoring of "joined" documents be configured
> somewhere / somehow?
>
> Thanks a lot in advance,
> best regards,
> Stefan
>
> --
> Mit den besten Grüßen aus Nürnberg,
> Stefan Moises
>
> *********************************************
> Stefan Moises
> Senior Softwareentwickler
> Leiter Modulentwicklung
>
> shoptimax GmbH
> Guntherstraße 45 a
> 90461 Nürnberg
> Amtsgericht Nürnberg HRB 21703
> GF Friedrich Schreieck
>
> Tel.: 0911/25566-25
> Fax:  0911/25566-29
> moises@shoptimax.de
> http://www.shoptimax.de
> *********************************************
>
>
>


-- 
Met vriendelijke groet,

Martijn van Groningen