Why is fieldNorm calculated when omitNorms is set to true?

Viewed 31

I have a Solr (3.2.0) instance with omitNorms=true on all fields. This has been done in an attempt to not penalize documents which have many tags.

    3.7455106 = (MATCH) fieldWeight(track_hierarchynode:pop in 258465), product of:
        2.236068 = tf(termFreq(track_hierarchynode:pop)=5)
        6.700173 = idf(docFreq=6960, maxDocs=2080776)
        0.25 = fieldNorm(field=track_hierarchynode, doc=258465)

What puzzles me is that, despite omitNorms=true, the fieldNorm is still calculated and affects the score.

How is the fieldNorm value calculated when omitNorms=true?

The calculation of 1 / sqrt(5) = 0.4472 does not explain the value of 0.25 for fieldNorm in this case.


Relevant parts from schema.xml :

   <field name="track_hierarchynode" type="textProcessed" indexed="true" stored="false" multiValued="true"/>

    <!-- A field which tokenizes on whitespace, and which creates additional tokens
         based on WordDelimiterFactory. Each term is lowercased and trimmed. -->
    <fieldType name="textProcessed" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <!--
        preserveOriginal    : enable this option to also index the original token.
        splitOnCaseChange   : enable this option to split a token into multiple tokens based on case change.
        splitOnNumerics     : enable this option to split a token into multiple tokens based on numbers.
        stemEnglishPossesive: enable this to remove trailing 's from tokens.
        generateWordParts   : enable this option to split a textual token into multiple tokens based on e.g. hyphens.
        catenateWords       : enable this option to generate different textual token combinations of tokens that are split.
        generateNumberParts : enable this option to split a numeric token into multiple tokens based on e.g. hyphens.
        catenateNumbers     : enable this option to generate different numerical token combinations of tokens that are split.
        catenateAll         : enable this option to generate different token combinations of tokens that are split (both textual and numerical).
        -->
        <filter class="solr.WordDelimiterFilterFactory" preserveOriginal="0" splitOnCaseChange="1" splitOnNumerics="1" stemEnglishPossessive="1" generateWordParts="1" catenateWords="1" generateNumberParts="1" catenateNumbers="1" catenateAll="0"/>
        <!--<filter class="solr.LengthFilterFactory" min="2" max="255"/>-->
        <filter class="solr.ASCIIFoldingFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.TrimFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" preserveOriginal="0" splitOnCaseChange="1" splitOnNumerics="1" stemEnglishPossessive="1" generateWordParts="1" catenateWords="1" generateNumberParts="1" catenateNumbers="1" catenateAll="0"/>
        <!--<filter class="solr.LengthFilterFactory" min="2" max="255" />-->
        <filter class="solr.ASCIIFoldingFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.TrimFilterFactory"/>
      </analyzer>
    </fieldType>
0 Answers
Related