I don't know the full answer to your question, but here's what I can offer.

Solr offers 2 types of normalisation, FieldNorm and QueryNorm.  FieldNorm
is as the name suggests field level normalisation, based on length of the
field, and can be controlled by the omitNorms parameter on the field.  In
your example, fieldNorm is always 1.0, see below, so that suggests you have
correctly turned off field normalisation on the name_edgy field.

1.0 = fieldNorm(field=name_edgy, doc=231378)

QueryNorm is what I'm still trying to get to the bottom of exactly :)  But
its something that tries to normalise the results of different term queries
so they are broadly comparable. You haven't supplied the query you've run ,
but based on the qf, bf, I'm assuming it breaks down into a DisMax query on
3 fields (name_edgy, name_edge, name_word) so queryNorm is trying to ensure
that the results of those 3 queries can be compared.  The exact details of
it I'm still trying to get to the bottom of (any volunteers with more info
chip in!)

>From earlier answers to the list, queryNorm is calculated in the Similarity
object, I need to dig further, but that's probably a good place to start.



On 10 July 2013 04:57, William Bell <billnb...@gmail.com> wrote:

> I have a field that has omitNorms=true, but when I look at debugQuery I see
> that
> the field is being normalized for the score.
>
> What can I do to turn off normalization in the score?
>
> I want a simple way to do 2 things:
>
> boost geodist() highest at 1 mile and lowest at 100 miles.
> plus add a boost for a query=edgefield^5.
>
> I only want tf() and no queryNorm. I am not even sure I want idf() but I
> can probably live with rare names being boosted.
>
>
>
> The results are being normalized. See below. I tried dismax and edismax -
> bf, bq and boost.
>
> <requestHandler name="autoproviderdist" class="solr.SearchHandler">
> <lst name="defaults">
> <str name="echoParams">none</str>
> <str name="defType">edismax</str>
> <float name="tie">0.01</float>
> <str name="fl">
> display_name,city_state,prov_url,pwid,city_state_alternative
> </str>
> <!--
> <str name="bq">_val_:"sum(recip(geodist(store_geohash), .5, 6, 6),
> 0.1)"^10</str>
> -->
> <str name="boost">sum(recip(geodist(store_geohash), .5, 6, 6), 0.1)</str>
> <int name="rows">5</int>
> <str name="q.alt">*:*</str>
> <str name="qf">name_edgy^.9 name_edge^.9 name_word</str>
> <str name="group">true</str>
> <str name="group.field">pwid</str>
> <str name="group.main">true</str>
> <!-- <str name="pf">name_edgy</str> do not turn on -->
> <str name="sort">score desc, last_name asc</str>
> <str name="d">100</str>
> <str name="pt">39.740112,-104.984856</str>
> <str name="sfield">store_geohash</str>
> <str name="hl">false</str>
> <str name="hl.fl">name_edgy</str>
> <str name="mm">2<-1 4<-2 6<-3</str>
> </lst>
> </requestHandler>
>
> 0.058555886 = queryNorm
>
> product of: 10.854807 = (MATCH) sum of: 1.8391232 = (MATCH) max plus 0.01
> times others of: 1.8214592 = (MATCH) weight(name_edge:paul^0.9 in 231378),
> product of: 0.30982485 = queryWeight(name_edge:paul^0.9), product of: 0.9 =
> boost 5.8789964 = idf(docFreq=26567, maxDocs=3493655)* 0.058555886 =
> queryNorm* 5.8789964 = (MATCH) fieldWeight(name_edge:paul in 231378),
> product of: 1.0 = tf(termFreq(name_edge:paul)=1) 5.8789964 =
> idf(docFreq=26567, maxDocs=3493655) 1.0 = fieldNorm(field=name_edge,
> doc=231378) 1.7664119 = (MATCH) weight(name_edgy:paul^0.9 in 231378),
> product of: 0.30510724 = queryWeight(name_edgy:paul^0.9), product of: 0.9 =
> boost 5.789479 = idf(docFreq=29055, maxDocs=3493655)* 0.058555886 =
> queryNorm* 5.789479 = (MATCH) fieldWeight(name_edgy:paul in 231378),
> product of: 1.0 = tf(termFreq(name_edgy:paul)=1) 5.789479 =
> idf(docFreq=29055, maxDocs=3493655) 1.0 = fieldNorm(field=name_edgy,
> doc=231378) 9.015684 = (MATCH) max plus 0.01 times others of: 8.9352665 =
> (MATCH) weight(name_word:nutting in 231378), product of: 0.72333425 =
> queryWeight(name_word:nutting), product of: 12.352887 = idf(docFreq=40,
> maxDocs=3493655) 0.058555886 = queryNorm 12.352887 = (MATCH)
> fieldWeight(name_word:nutting in 231378), product of: 1.0 =
> tf(termFreq(name_word:nutting)=1) 12.352887 = idf(docFreq=40,
> maxDocs=3493655) 1.0 = fieldNorm(field=name_word, doc=231378) 8.04174 =
> (MATCH) weight(name_edgy:nutting^0.9 in 231378), product of: 0.65100086 =
> queryWeight(name_edgy:nutting^0.9), product of: 0.9 = boost 12.352887 =
> idf(docFreq=40, maxDocs=3493655)* 0.058555886 = queryNorm* 12.352887 =
> (MATCH) fieldWeight(name_edgy:nutting in 231378), product of: 1.0 =
> tf(termFreq(name_edgy:nutting)=1) 12.352887 = idf(docFreq=40,
> maxDocs=3493655) 1.0 = fieldNorm(field=name_edgy, doc=231378) 1.0855998 =
>
> sum(6.0/(0.5*float(geodist(39.74168747663498,-104.9849385023117,39.740112,-104.984856))+6.0),const(0.1))
>
>
>
> --
> Bill Bell
> billnb...@gmail.com
> cell 720-256-8076
>

Reply via email to