[ 
https://issues.apache.org/jira/browse/SOLR-3747?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ramzi Alqrainy updated SOLR-3747:
---------------------------------

    Description: 
Usually, search results are sorted by their score (how well the document 
matched the query), but it is common to need to support the sorting of supplied 
data too.

Boosting affects the scores of matching documents in order to affect ranking in 
score-sorted search results. Providing a boost value, whether at the document 
or field level, is optional. 

When the results are returned with scores, we want to be able to only "keep" 
results that are above some score (i.e. results of a certain quality only). Is 
it possible to do this when the returned subset could be anything?

I ask because it seems like on some queries a score of say 0.008 is resulting 
in a decent match, whereas other queries a higher score results in a poor match.

I have written pseudo code to achieve what I said.
Note: I have attached my code as screenshot


      double scoreLimit = 0.75  #For example
      searchResults = new Results[numberOfResults];
      boolean lastScore=false;
      solrSearchResults = Calling Solr Engine.
      for( Result result : solrSearchResults) {

        if (lastScore != false && result.score/lastScore<scoreLimit) break;

                lastScore = result.score;

            Adding new result to searchResults array                            
                
      }

  was:
Usually, search results are sorted by their score (how well the document 
matched the query), but it is common to need to support the sorting of supplied 
data too.

Boosting affects the scores of matching documents in order to affect ranking in 
score-sorted search results. Providing a boost value, whether at the document 
or field level, is optional. 

When the results are returned with scores, we want to be able to only "keep" 
results that are above some score (i.e. results of a certain quality only). Is 
it possible to do this when the returned subset could be anything?

I ask because it seems like on some queries a score of say 0.008 is resulting 
in a decent match, whereas other queries a higher score results in a poor match.

I have written pseudo code to accomplish what I said


      double scoreLimit = 0.75  #For example
      searchResults = new Results[numberOfResults];
      boolean lastScore=false;
      solrSearchResults = Calling Solr Engine.
      for( Result result : solrSearchResults) {

        if (lastScore != false && result.score/lastScore<scoreLimit) break;

                lastScore = result.score;

            Adding new result to searchResults array                            
                
      }

    
> Solr Score threshold 'reasonably', independent of results returned
> ------------------------------------------------------------------
>
>                 Key: SOLR-3747
>                 URL: https://issues.apache.org/jira/browse/SOLR-3747
>             Project: Solr
>          Issue Type: Task
>          Components: Schema and Analysis
>            Reporter: Ramzi Alqrainy
>              Labels: documentation
>         Attachments: Screen Shot 2012-08-21 at 5.30.38 AM.png
>
>   Original Estimate: 5h
>  Remaining Estimate: 5h
>
> Usually, search results are sorted by their score (how well the document 
> matched the query), but it is common to need to support the sorting of 
> supplied data too.
> Boosting affects the scores of matching documents in order to affect ranking 
> in score-sorted search results. Providing a boost value, whether at the 
> document or field level, is optional. 
> When the results are returned with scores, we want to be able to only "keep" 
> results that are above some score (i.e. results of a certain quality only). 
> Is it possible to do this when the returned subset could be anything?
> I ask because it seems like on some queries a score of say 0.008 is resulting 
> in a decent match, whereas other queries a higher score results in a poor 
> match.
> I have written pseudo code to achieve what I said.
> Note: I have attached my code as screenshot
>       double scoreLimit = 0.75  #For example
>       searchResults = new Results[numberOfResults];
>       boolean lastScore=false;
>       solrSearchResults = Calling Solr Engine.
>       for( Result result : solrSearchResults) {
>         if (lastScore != false && result.score/lastScore<scoreLimit) break;
>               lastScore = result.score;
>             Adding new result to searchResults array                          
>                 
>       }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to