You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@solr.apache.org by Alessandro Benedetti <a....@sease.io> on 2021/12/02 16:40:12 UTC
Re: Unuseful block of code in ltr module
Adding Christine and Diego to the loop if they missed this.
Thanks Anna for raising.
Cheers
--------------------------
Alessandro Benedetti
Apache Lucene/Solr Committer
Director, R&D Software Engineer, Search Consultant
www.sease.io
On Wed, 10 Nov 2021 at 16:41, Anna Ruggero <a....@sease.io> wrote:
> Hi all,
>
> I was looking at the *org.apache.solr.ltr.LTRRescorer#scoreFeatures *
> method.
> Since we are using reranking applied to some topN documents (rerankDocs
> parameter) I think that this block of code in *org.apache.solr.ltr.LTRRescorer#scoreSingleHit
> *will never be accessed:
>
> if (hitUpto >= topN) {
> // once that heap is ready, if the score of this document is lower that
> // the minimum
> // i don't want to log the feature. Otherwise I replace it with the
> // minimum and fix the
> // heap.
> if (hit.score > reranked[0].score) {
> reranked[0] = hit;
> heapAdjust(reranked, topN, 0);
> if (featureLogger != null && indexSearcher instanceof SolrIndexSearcher) {
> featureLogger.log(hit.doc, rerankingQuery, (SolrIndexSearcher) indexSearcher,
> modelWeight.getFeaturesInfo());
> }
> }
>
> Since we are reranking the topN documents. the *hits.length* in the
> scoreFeatures method is always *equal* to the *topN* variable.
> Therefore, since *hitUpto* is going from *0* to *hits.length -1*, we will
> never have *hitUpto >= topN*
>
> Is there any condition I am missing?
> Couldn't this piece of code be removed?
>
> Thank you,
> Anna
>
Re: Unuseful block of code in ltr module
Posted by Diego Ceccarelli <di...@gmail.com>.
Hi, I had a quick look and it seems that Anna is right, but there should be
a case where you ask to rerank more documents than what you want to see..
need to review the code :)
cheers,
Diego
On Thu, 2 Dec 2021, 16:40 Alessandro Benedetti, <a....@sease.io>
wrote:
> Adding Christine and Diego to the loop if they missed this.
> Thanks Anna for raising.
>
> Cheers
> --------------------------
> Alessandro Benedetti
> Apache Lucene/Solr Committer
> Director, R&D Software Engineer, Search Consultant
>
> www.sease.io
>
>
> On Wed, 10 Nov 2021 at 16:41, Anna Ruggero <a....@sease.io> wrote:
>
>> Hi all,
>>
>> I was looking at the *org.apache.solr.ltr.LTRRescorer#scoreFeatures *
>> method.
>> Since we are using reranking applied to some topN documents (rerankDocs
>> parameter) I think that this block of code in *org.apache.solr.ltr.LTRRescorer#scoreSingleHit
>> *will never be accessed:
>>
>> if (hitUpto >= topN) {
>> // once that heap is ready, if the score of this document is lower that
>> // the minimum
>> // i don't want to log the feature. Otherwise I replace it with the
>> // minimum and fix the
>> // heap.
>> if (hit.score > reranked[0].score) {
>> reranked[0] = hit;
>> heapAdjust(reranked, topN, 0);
>> if (featureLogger != null && indexSearcher instanceof SolrIndexSearcher) {
>> featureLogger.log(hit.doc, rerankingQuery, (SolrIndexSearcher) indexSearcher,
>> modelWeight.getFeaturesInfo());
>> }
>> }
>>
>> Since we are reranking the topN documents. the *hits.length* in the
>> scoreFeatures method is always *equal* to the *topN* variable.
>> Therefore, since *hitUpto* is going from *0* to *hits.length -1*, we
>> will never have *hitUpto >= topN*
>>
>> Is there any condition I am missing?
>> Couldn't this piece of code be removed?
>>
>> Thank you,
>> Anna
>>
>