boost not showing up in Solr 3.6 debugQueries?

2012-05-17 Thread Tom Burton-West
Hello all,

In Solr 3.4, the boost factor is explicitly shown in debugQueries:

str name=coo.31924100321193
0.37087926 = (MATCH) sum of:
  0.3708323 = (MATCH) weight(ocr:dog^1000.0 in 215624), product of:
0.995 = queryWeight(ocr:dog^1000.0), product of:
  1000.0 = boost
  2.32497 = idf(docFreq=237626, maxDocs=893970)
  4.3011288E-4 = queryNorm
0.37083247 = (MATCH) fieldWeight(ocr:dog in 215624), product of:
  27.221315 = tf(termFreq(ocr:dog)=741)
...

But in Solr 3.6 I am not seeing the boost factor called out.

 On the other hand it looks like it may now be incoroporated in the
queryNorm (Please see example below).

Is there a bug in Solr 3.6 debugQueries?  Is there some new behavior
regarding boosts and queryNorms? or am I missing something obvious?

(Apologies for the Japanese query, but right now the only index I have
in Solr 3.6 is for CJK and this is one of the querie from our log.

Tom Burton-West



lst name=debug
  str name=rawquerystring 兵にな^1000 OR hanUnigrams:兵にな/str
  str name=querystring 兵にな^1000 OR hanUnigrams:兵にな/str
  str name=parsedquery((+ocr:兵に +ocr:にな)^1000.0) hanUnigrams:兵/str
  str name=parsedquery_toString((+ocr:兵に +ocr:にな)^1000.0)
hanUnigrams:兵/str

  lst name=explain
str name=mdp.39015021911386
0.15685473 = (MATCH) sum of:
  0.15684697 = (MATCH) sum of:
0.0067602023 = (MATCH) weight(ocr:兵に in 213594), product of:
  0.81443477 = queryWeight(ocr:兵に), product of:
3.3998778 = idf(docFreq=70130, maxDocs=772972)
0.23954825 = queryNorm
  0.008300483 = (MATCH) fieldWeight(ocr:兵に in 213594), product of:
1.0 = tf(termFreq(ocr:兵に)=1)
3.3998778 = idf(docFreq=70130, maxDocs=772972)
0.0024414062 = fieldNorm(field=ocr, doc=213594)
0.15008678 = (MATCH) weight(ocr:にな in 213594), product of:
  0.5802551 = queryWeight(ocr:にな), product of:
2.422289 = idf(docFreq=186410, maxDocs=772972)
0.23954825 = queryNorm
  0.25865653 = (MATCH) fieldWeight(ocr:にな in 213594), product of:
43.737854 = tf(termFreq(ocr:にな)=1913)
2.422289 = idf(docFreq=186410, maxDocs=772972)
0.0024414062 = fieldNorm(field=ocr, doc=213594)
  7.76674E-6 = (MATCH) weight(hanUnigrams:兵 in 213594), product of:
2.9968342E-4 = queryWeight(hanUnigrams:兵), product of:
  1.2510358 = idf(docFreq=601367, maxDocs=772972)
  2.3954824E-4 = queryNorm
0.025916481 = (MATCH) fieldWeight(hanUnigrams:兵 in 213594), product of:
  4.2426405 = tf(termFreq(hanUnigrams:兵)=18)
  1.2510358 = idf(docFreq=601367, maxDocs=772972)
  0.0048828125 = fieldNorm(field=hanUnigrams, doc=213594)
/str


Re: boost not showing up in Solr 3.6 debugQueries?

2012-05-17 Thread Robert Muir
On Thu, May 17, 2012 at 4:51 PM, Tom Burton-West tburt...@umich.edu wrote:

 But in Solr 3.6 I am not seeing the boost factor called out.

  On the other hand it looks like it may now be incoroporated in the
 queryNorm (Please see example below).

 Is there a bug in Solr 3.6 debugQueries?  Is there some new behavior
 regarding boosts and queryNorms? or am I missing something obvious?


Your queries are different. your first example is a simple termquery.
The second example is a boolean query.

if you have a booleanquery(green frog) with a boost of 5, it
incorporates its boost into the query norm passed down to its
children.
So when leaf nodes normalize their weight, it includes all the boosts
from the parent hierarchy.
You can see what I mean if you look at BooleanWeight.normalize()

Because of how this is done, 3.x's explain confusingly only shows the
leaf node's explicit boost, since thats all it really knows.
To see what i mean try something like booleanquery(green^2 frog^3)^5

In 4.x these boosts are split apart from and kept separate from the
query norm, so we could actually improve the explanations here I
think.

-- 
lucidimagination.com