Chris Pilsworth created SOLR-5929:
-------------------------------------

             Summary: Solrj QueryResponse results not presented in proper score 
order
                 Key: SOLR-5929
                 URL: https://issues.apache.org/jira/browse/SOLR-5929
             Project: Solr
          Issue Type: Bug
          Components: clients - java
    Affects Versions: 4.6.1
         Environment: Windows 7, Java 7
            Reporter: Chris Pilsworth


It would appear that the results collection is sorting on the score as a string 
where there is an exponent.

When searching for a term that returns two documents, one with a significantly 
smaller score than the other the results are returned *correctly* from solr 
directly.
{code:json}
{
    responseHeader: {
        status: 0,
        QTime: 69,
        params: {
            q: "sausages",
            indent: "true",
            fl: "id, inv_text_summary, score",
            wt: "json",
            debugQuery: "true"
        }
    },
    response: {
        numFound: 2,
        start: 0,
        maxScore: 0.0012368863,
        docs: [
            {
                inv_text_summary: "Contrary to popular belief, Lorem sausages 
sausages sausages sausagesIpsum is not simply random text. It has roots in a 
piece of classical Latin literature from 45 BC, making it over 2000 years old. 
Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, 
looked up one of the ...",
                id: 
"/content/investec-qa/capital/en_gb/home/test_pages/test_page_2/multiterm2",
                score: 0.0012368863
            },
            {
                inv_text_summary: "Contrary to sausages belief, Lorem Ipsum is 
not simply random text. It has roots in a piece of classical Latin literature 
from 45 BC, making it over 2000 years old. Richard McClintock, a Latin 
professor at Hampden-Sydney College in Virginia, looked up one of the more 
obscure Latin words, consecte...",
                id: 
"/content/investec-qa/capital/en_gb/home/test_pages/test_page_2/multiterm1",
                score: 0.0006184431
            }
        ]
    },
    debug: {
        rawquerystring: "sausages",
        querystring: "sausages",
        parsedquery: "(+DisjunctionMaxQuery((inv_path:sausages | 
inv_h1:sausages^8.0 | inv_text_summary:sausages^2.0 | inv_title:sausages^18.0 | 
inv_h2:sausages^6.0 | inv_h3:sausages^4.0 | inv_text:sausages)~1.0) () () () () 
() () ())/no_coord",
        parsedquery_toString: "+(inv_path:sausages | inv_h1:sausages^8.0 | 
inv_text_summary:sausages^2.0 | inv_title:sausages^18.0 | inv_h2:sausages^6.0 | 
inv_h3:sausages^4.0 | inv_text:sausages)~1.0 () () () () () () ()",
        explain: {
            
/content/investec-qa/capital/en_gb/home/test_pages/test_page_2/multiterm2: " 
0.0012368863 = (MATCH) sum of: 0.0012368863 = (MATCH) max plus 1.0 times others 
of: 0.0012368863 = (MATCH) weight(inv_text:sausages in 0) [DefaultSimilarity], 
result of: 0.0012368863 = score(doc=0,freq=4.0 = termFreq=4.0 ), product of: 
0.016643414 = queryWeight, product of: 0.5945349 = idf(docFreq=2, maxDocs=2) 
0.027994009 = queryNorm 0.07431686 = fieldWeight in 0, product of: 2.0 = 
tf(freq=4.0), with freq of: 4.0 = termFreq=4.0 0.5945349 = idf(docFreq=2, 
maxDocs=2) 0.0625 = fieldNorm(doc=0) ",
            
/content/investec-qa/capital/en_gb/home/test_pages/test_page_2/multiterm1: " 
6.184431E-4 = (MATCH) sum of: 6.184431E-4 = (MATCH) max plus 1.0 times others 
of: 6.184431E-4 = (MATCH) weight(inv_text:sausages in 0) [DefaultSimilarity], 
result of: 6.184431E-4 = score(doc=0,freq=1.0 = termFreq=1.0 ), product of: 
0.016643414 = queryWeight, product of: 0.5945349 = idf(docFreq=2, maxDocs=2) 
0.027994009 = queryNorm 0.03715843 = fieldWeight in 0, product of: 1.0 = 
tf(freq=1.0), with freq of: 1.0 = termFreq=1.0 0.5945349 = idf(docFreq=2, 
maxDocs=2) 0.0625 = fieldNorm(doc=0) "
        },
        QParser: "ExtendedDismaxQParser",
        altquerystring: null,
        boost_queries: null,
        parsed_boost_queries: [
            
        ],
        boostfuncs: null,
        timing: {
            time: 69,
            prepare: {
                time: 14,
                query: {
                    time: 14
                },
                facet: {
                    time: 0
                },
                mlt: {
                    time: 0
                },
                highlight: {
                    time: 0
                },
                stats: {
                    time: 0
                },
                debug: {
                    time: 0
                }
            },
            process: {
                time: 55,
                query: {
                    time: 0
                },
                facet: {
                    time: 0
                },
                mlt: {
                    time: 0
                },
                highlight: {
                    time: 0
                },
                stats: {
                    time: 0
                },
                debug: {
                    time: 55
                }
            }
        }
    }
}

However, when read through the solrj client, the document with the lower score 
is presented first.  This could be as the lower score (0.0006184431) is 
expressed as 6.184431E-4.

The QueryResponse.toString looks like this.
{code}
{responseHeader={status=0,QTime=2156,params={q=sausages,hl.useFastVectorHighlighter=true,facet.field=[inv_investecContentType,
 
inv_investecCategory],qt=/selectmin,hl=true,start=0,sort=inv_desktopPageTitleSort
 asc,id 
asc,rows=5,facet=true,wt=javabin,version=2,debugQuery=true}},response={numFound=2,start=0,maxScore=0.0012368863,docs=[SolrDocument{inv_text_summary=Contrary
 to sausages belief, Lorem Ipsum is not simply random text. It has roots in a 
piece of classical Latin literature from 45 BC, making it over 2000 years old. 
Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, 
looked up one of the more obscure Latin words, consecte..., 
inv_title=[multiterm1 - Investec Specialist Bank], 
inv_customContentTypes=[#1:COMMON#2:#3:#4:#5:[]#6:#7:[]#8:[]], 
id=/content/investec-qa/capital/en_gb/home/test_pages/test_page_2/multiterm1, 
inv_created=Thu Mar 27 12:54:34 CET 2014, inv_contentProcessed=Thu Mar 27 
12:59:04 CET 2014, inv_desktopPageTitle=multiterm1, 
inv_mobilePageTitle=multiterm1, inv_lastModified=Thu Mar 27 12:57:48 CET 2014, 
score=6.184431E-4}, SolrDocument{inv_text_summary=Contrary to popular belief, 
Lorem sausages sausages sausages sausagesIpsum is not simply random text. It 
has roots in a piece of classical Latin literature from 45 BC, making it over 
2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College 
in Virginia, looked up one of the ..., inv_title=[multiterm2 - Investec 
Specialist Bank], 
inv_customContentTypes=[#1:COMMON#2:#3:#4:#5:[]#6:#7:[]#8:[]], 
id=/content/investec-qa/capital/en_gb/home/test_pages/test_page_2/multiterm2, 
inv_created=Thu Mar 27 12:54:42 CET 2014, inv_contentProcessed=Thu Mar 27 
13:03:31 CET 2014, inv_desktopPageTitle=multiterm2, 
inv_mobilePageTitle=multiterm2, inv_lastModified=Thu Mar 27 13:03:27 CET 2014, 
score=0.0012368863}]},facet_counts={facet_queries={},facet_fields={inv_investecContentType={NONE=2},inv_investecCategory={NONE=2}},facet_dates={},facet_ranges={}},highlighting={/content/investec-qa/capital/en_gb/home/test_pages/test_page_2/multiterm1={inv_text=[Contrary
 to <b>sausages</b> belief, Lorem Ipsum is not simply random text. It has roots 
in a piece of 
classical]},/content/investec-qa/capital/en_gb/home/test_pages/test_page_2/multiterm2={inv_text=[Contrary
 to popular belief, Lorem <b>sausages</b> <b>sausages</b> <b>sausages</b> 
<b>sausages</b>Ipsum is not simply random text. 
It]}},debug={rawquerystring=sausages,querystring=sausages,parsedquery=(+DisjunctionMaxQuery((inv_path:sausages
 | inv_h1:sausages^8.0 | inv_text_summary:sausages^2.0 | 
inv_title:sausages^18.0 | inv_h2:sausages^6.0 | inv_h3:sausages^4.0 | 
inv_text:sausages)~1.0) () () () () () () 
())/no_coord,parsedquery_toString=+(inv_path:sausages | inv_h1:sausages^8.0 | 
inv_text_summary:sausages^2.0 | inv_title:sausages^18.0 | inv_h2:sausages^6.0 | 
inv_h3:sausages^4.0 | inv_text:sausages)~1.0 () () () () () () (),explain=
{/content/investec-qa/capital/en_gb/home/test_pages/test_page_2/multiterm1=
6.184431E-4 = (MATCH) sum of:
  6.184431E-4 = (MATCH) max plus 1.0 times others of:
    6.184431E-4 = (MATCH) weight(inv_text:sausages in 0) [DefaultSimilarity], 
result of:
      6.184431E-4 = score(doc=0,freq=1.0 = termFreq=1.0
), product of:
        0.016643414 = queryWeight, product of:
          0.5945349 = idf(docFreq=2, maxDocs=2)
          0.027994009 = queryNorm
        0.03715843 = fieldWeight in 0, product of:
          1.0 = tf(freq=1.0), with freq of:
            1.0 = termFreq=1.0
          0.5945349 = idf(docFreq=2, maxDocs=2)
          0.0625 = fieldNorm(doc=0)
,/content/investec-qa/capital/en_gb/home/test_pages/test_page_2/multiterm2=
0.0012368863 = (MATCH) sum of:
  0.0012368863 = (MATCH) max plus 1.0 times others of:
    0.0012368863 = (MATCH) weight(inv_text:sausages in 0) [DefaultSimilarity], 
result of:
      0.0012368863 = score(doc=0,freq=4.0 = termFreq=4.0
), product of:
        0.016643414 = queryWeight, product of:
          0.5945349 = idf(docFreq=2, maxDocs=2)
          0.027994009 = queryNorm
        0.07431686 = fieldWeight in 0, product of:
          2.0 = tf(freq=4.0), with freq of:
            4.0 = termFreq=4.0
          0.5945349 = idf(docFreq=2, maxDocs=2)
          0.0625 = fieldNorm(doc=0)
},QParser=ExtendedDismaxQParser,altquerystring=null,boost_queries=null,parsed_boost_queries=[],boostfuncs=null,timing={time=2155.0,prepare={time=143.0,query={time=143.0},facet={time=0.0},mlt={time=0.0},highlight={time=0.0},stats={time=0.0},debug={time=0.0}},process={time=2012.0,query={time=119.0},facet={time=206.0},mlt={time=0.0},highlight={time=701.0},stats={time=0.0},debug={time=986.0}}}}}
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

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

Reply via email to