lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steven Bethard <>
Subject Re: exponential boosts
Date Sun, 12 Apr 2009 18:25:20 GMT
On 4/10/2009 5:13 PM, Steven Bethard wrote:
> On 4/10/2009 12:56 PM, Steven Bethard wrote:
>> 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.
> My third thought was to create a wrapper class that takes a Query and an
> exponential boost factor. The wrapper class would delegate to the Query
> for all methods except .weight(). For .weight(), it would return a
> Weight wrapper that delegated to the Weight for all methods except
> .getValue(). For .getValue(), it would return the original value, raised
> to the appropriate exponent. But will that really work, or am I going to
> mess up the normalization or something else?

I've started playing around with this route. I'm not 100% sure I've
implemented all the Query and Weight methods correctly (the
documentation for these is pretty terse), but assuming I have it right,
that should give me the ability to create the "s(d, q)^a" terms, by just
coming up with a Query for each term, and then wrapping it in my wrapper
class to add the exponential boost.

So to finish up the scoring, I want to create a Query that takes all the
sub-queries and just multiplies their scores together. This seems like
something Lucene must already be doing somewhere. I looked at
BooleanQuery hoping maybe that was already doing something like this,
but BooleanWeight.getValue() just seems to return the boost factor, so I
guess not.

So does anyone know of an existing Query class that will simply multiply
its sub-queries together?

More generally, is there any other documentation about Lucene's scoring
mechanisms than the following? There isn't quite enough detail (or I
don't know how to read it) to answer my questions here.

Also, I seem to have gotten very little response to my questions here,
perhaps because they are asking about the expert interfaces? Is there a
better place to ask such questions?



To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message