I need to have a scoring model of the form:
s1(d, q)^a1 * s2(d, q)^a2 * ... * sN(d, q)^aN
where "d" is a document, "q" is a query, "sK" is a scoring function, and
"aK" is the exponential boost factor for that scoring function. As a
simple example, I might have:
s1 = TF-IDF score matching "text" field (e.g. a TermQuery)
a1 = 1.0
s2 = TF-IDF score matching "author" field (e.g. a TermQuery)
a2 = 0.1
s3 = PageRank score (e.g. a FieldScoreQuery)
a3 = 0.5
It's important that the "aK" parameters are exponents in the scoring
function and not just multipliers because it allows me to do a
particular kind of optimized search for the best parameter values.
How can I achieve this? My first thought was just that I should set the
boost factor for each query, but the boost factor is just a multiplier,
right?
My second thought was to subclass CustomScoreQuery and override
customScore, but as far as I can tell, CustomScoreQuery can only combine
a Query with a ValueSourceQuery, while I need to combine a Query with
another Query (e.g. the example above with two TermQuery scores).
How should I go about this?
Thanks in advance,
Steve
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]