lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Elschot <>
Subject Re: lucene Scorers
Date Sat, 13 Nov 2004 11:07:05 GMT
On Friday 12 November 2004 22:56, Chuck Williams wrote:
> I had a similar need and wrote MaxDisjunctionQuery and
> MaxDisjunctionScorer.  Unfortunately these are not available as a patch
> but I've included the original message below that has the code (modulo
> line breaks added by simple text email format).
> This code is functional -- I use it in my app.  It is optimized for its
> stated use, which involves a small number of clauses.  You'd want to
> improve the incremental sorting (e.g., using the bucket technique of
> BooleanQuery) if you need it for large numbers of clauses.

When you're interested, you can also have a look here for
yet another DisjunctionScorer:

It has the advantage that it implements skipTo() so that it can 
be used as a subscorer of ConjunctionScorer, ie. it can be
faster in situations like this:

aa AND (bb OR cc)

where bb and cc are treated by the DisjunctionScorer.
When aa is a filter this can also be used to implement
a filtering query.

> Re. Paul's suggested steps below, I did not integrate this with query
> parser as I didn't need that functionality (since I'm generating the
> multi-field expansions for which max is a much better scoring choice
> than sum).
> Chuck
> Included message:
> -----Original Message-----
> From: Chuck Williams [] 
> Sent: Monday, October 11, 2004 9:55 PM
> To:
> Subject: Contribution: better multi-field searching
> The files included below ( and
> provide a new mechanism for searching across
> multiple fields.

The maximum indeed works well, also when the fields differ a lot length.

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

View raw message