: I believe two concepts are getting slightly mixed here: the
: LinearFloatFunction, which is a Solr FunctionQuery, and the original Lucene
: scoring methodology. FunctionQueries are not part of vanilla Lucene, so you
: will not explicitly see them mentioned in the Lucene similarity documents.

furthermore, the "Lucene Scoring Formula" is based very heavily on simple
BooleanQueries containing TermQueries ... when you start looking at more
exotic queries (like PhraseQueries, SpanQueries, etc...) it's not longer
as simple.  FunctionQueries are about as exotic as you cna get.

: The best way to understand how FunctionQueries are applied is to use the
: Solr explanations (&debugQuery=1, I believe).

I just want to re-iterate that point ... when trying to understand
anything baout scoring, explain is your friend ... this is doubly true
with function queries.

: >From my experience, each Function Query you add is treated as another term
: in the summation. E.g., if the search query has 2 terms and 1 function query
: is added, you will see 3 terms summed to yield the score. The function query
: result is multiplied by queryNorm(q), making the effect a bit hard to
: predict sometimes.

correct. the Sigma in the Lucene scoring equation is across all of the
hypothetical term queries contained in an outermost hypothetical boolena
query.  when dealing with a function query, all of the "t" based terms
(tf, idf, t.getBoost, and norm(t,d)) don't exist .. instead you have
only the function value, and ny boost you've applied to the function query
(which strictly speaking is the "t.getBoost()" from the orriginal
equation, even though it's not a term)



-Hoss

Reply via email to