Hi All,

I hope someone could shed some light on the issue I'm facing with solr
3.1.0. It looks like it's computing diferrent fieldNorm values despite my
configuration that aims to ignore it.

   <field name="item_name" type="textgen" indexed="true" store="true"
omitNorms="true" omitTermFrequencyAndPositions="true" />
   <field name="item_description" type="textTight" indexed="true"
store="true" omitNorms="true" omitTermFrequencyAndPositions="true" />
   <field name="item_tags" type="text" indexed="true" stored="true"
multiValued="true" omitNorms="true" omitTermFrequencyAndPositions="true" />

I also have a custom class that extends DefaultSimilarity to override the
idf method.

Query:

<str name="q">item_name:octopus seafood OR item_description:octopus seafood
OR item_tags:octopus seafood</str>
<str name="sort">score desc,item_ranking desc</str>

The first 2 results are:
<doc>
<float name="score">0.5217492</float>
<str name="item_name">Grilled Octopus</str>
<arr name="item_tags"><str>Seafood, tapas</str></arr>
</doc>
<doc>
    <float name="score">0.49379835</float>
   <str name="item_name">octopus marisco</str>
   <arr name="item_tags"><str>Appetizer, Mexican, Seafood, food</str></arr>
</doc>

Does anyone know why they get a different score? I'm expecting them to have
the same scoring because both matched the two search terms.

I checked the debug information and it seems that the difference involves
the fieldNorm values.

1) Grilled Octopus
0.52174926 = (MATCH) product of:
  0.7826238 = (MATCH) sum of:
    0.4472136 = (MATCH) weight(item_name:octopus in 69), product of:
      0.4472136 = queryWeight(item_name:octopus), product of:
        1.0 = idf(docFreq=2, maxDocs=449)
        0.4472136 = queryNorm
      1.0 = (MATCH) fieldWeight(item_name:octopus in 69), product of:
        1.0 = tf(termFreq(item_name:octopus)=1)
        1.0 = idf(docFreq=2, maxDocs=449)
        1.0 = fieldNorm(field=item_name, doc=69)
    0.1118034 = (MATCH) weight(text:seafood in 69), product of:
      0.4472136 = queryWeight(text:seafood), product of:
        1.0 = idf(docFreq=8, maxDocs=449)
        0.4472136 = queryNorm
      0.25 = (MATCH) fieldWeight(text:seafood in 69), product of:
        1.0 = tf(termFreq(text:seafood)=1)
        1.0 = idf(docFreq=8, maxDocs=449)
        0.25 = fieldNorm(field=text, doc=69)
    0.1118034 = (MATCH) weight(text:seafood in 69), product of:
      0.4472136 = queryWeight(text:seafood), product of:
        1.0 = idf(docFreq=8, maxDocs=449)
        0.4472136 = queryNorm
      0.25 = (MATCH) fieldWeight(text:seafood in 69), product of:
        1.0 = tf(termFreq(text:seafood)=1)
        1.0 = idf(docFreq=8, maxDocs=449)
        0.25 = fieldNorm(field=text, doc=69)
    0.1118034 = (MATCH) weight(text:seafood in 69), product of:
      0.4472136 = queryWeight(text:seafood), product of:
        1.0 = idf(docFreq=8, maxDocs=449)
        0.4472136 = queryNorm
      0.25 = (MATCH) fieldWeight(text:seafood in 69), product of:
        1.0 = tf(termFreq(text:seafood)=1)
        1.0 = idf(docFreq=8, maxDocs=449)
        0.25 = fieldNorm(field=text, doc=69)
  0.6666667 = coord(4/6)

2) octopus marisco

0.49379835 = (MATCH) product of:
  0.7406975 = (MATCH) sum of:
    0.4472136 = (MATCH) weight(item_name:octopus in 81), product of:
      0.4472136 = queryWeight(item_name:octopus), product of:
        1.0 = idf(docFreq=2, maxDocs=449)
        0.4472136 = queryNorm
      1.0 = (MATCH) fieldWeight(item_name:octopus in 81), product of:
        1.0 = tf(termFreq(item_name:octopus)=1)
        1.0 = idf(docFreq=2, maxDocs=449)
        1.0 = fieldNorm(field=item_name, doc=81)
    0.09782797 = (MATCH) weight(text:seafood in 81), product of:
      0.4472136 = queryWeight(text:seafood), product of:
        1.0 = idf(docFreq=8, maxDocs=449)
        0.4472136 = queryNorm
      0.21875 = (MATCH) fieldWeight(text:seafood in 81), product of:
        1.0 = tf(termFreq(text:seafood)=1)
        1.0 = idf(docFreq=8, maxDocs=449)
        0.21875 = fieldNorm(field=text, doc=81)
    0.09782797 = (MATCH) weight(text:seafood in 81), product of:
      0.4472136 = queryWeight(text:seafood), product of:
        1.0 = idf(docFreq=8, maxDocs=449)
        0.4472136 = queryNorm
      0.21875 = (MATCH) fieldWeight(text:seafood in 81), product of:
        1.0 = tf(termFreq(text:seafood)=1)
        1.0 = idf(docFreq=8, maxDocs=449)
        0.21875 = fieldNorm(field=text, doc=81)
    0.09782797 = (MATCH) weight(text:seafood in 81), product of:
      0.4472136 = queryWeight(text:seafood), product of:
        1.0 = idf(docFreq=8, maxDocs=449)
        0.4472136 = queryNorm
      0.21875 = (MATCH) fieldWeight(text:seafood in 81), product of:
        1.0 = tf(termFreq(text:seafood)=1)
        1.0 = idf(docFreq=8, maxDocs=449)
        0.21875 = fieldNorm(field=text, doc=81)
  0.6666667 = coord(4/6)

Thanks in advance,
Adolfo.

Reply via email to