Hi all,

I am a little confused as to why the scoring is working the way it is:

I have a field defined as:

<field name="myname" type="text" indexed="true" stored="true"
required="false" multivalued="true" />

And I have several documents where that value is:

RECORD 1
<arr name="myname">
  <str>Fred</str>
  <str>Fred (the coolest guy in town)</str>
</arr>

OR

RECORD 2
<arr name="myname">
  <str>Fred Anderson</str>
</arr>

What happens when I do a search for
http://localhost:8983/solr/search/?q=myname:Fred I get RECORD 2
returned before RECORD 1.

RECORD 2
5.282213 = (MATCH) fieldWeight(myname:Fred in 256575), product of:
  1.0 = tf(termFreq(myname:Fred)=1)
  8.451541 = idf(docFreq=7306, maxDocs=12586425)
  0.625 = fieldNorm(field=myname, doc=256575)

RECORD 1
4.482106 = (MATCH) fieldWeight(myname:Fred in 215), product of:
  1.4142135 = tf(termFreq(myname:Fred)=2)
  8.451541 = idf(docFreq=7306, maxDocs=12586425)
  0.375 = fieldNorm(field=myname, doc=215)

So the difference is fieldNorm obviously but I think that's only part
of the story. Why is RECORD 2 returned with a higher score than RECORD
1 even though RECORD 1 matches "Fred" exactly? And how should I do
this differently so that I am getting the results I am expecting?

Thanks,

Brian Lamb

Reply via email to