lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Smiley (JIRA)" <>
Subject [jira] [Commented] (LUCENE-4208) Spatial distance relevancy should use score of 1/distance
Date Wed, 12 Sep 2012 04:24:08 GMT


David Smiley commented on LUCENE-4208:

This being said, something relatively simple should be done to advance this issue for v4 (and
I'll do the work now).  It comes down to what is the score of makeQuery()?  The strategies
are doing different things right now.  Here are 3 options I can think of:
# Standardize on the reciprocal distance using some specific formula like c/(d+c) where c
is 1/10th the distance to the nearest query shape edge.
# Documented loosely to allow any "reasonable" shape similarity so that it will at least sort
sensibly (this precludes returning the distance directly).
# Add a ValueSource parameter to makeQuery(). This allows the caller to pick something.  If
null is supplied then you get a ConstantScoreQuery.  A convenience method on Strategy can
be provided to return a ValueSource of the reciprocal distance formula if the caller wants
to use that.

The #3 the ValueSource parameter seems appealing to me but then I remember why makeQuery()
exists instead of letting the user combine the distance valueSource & makeFilter.  If
the filter requires the valueSource (such as a [working] TwoDoubles given a query shape other
than a rect), then the valueSource might be invoked twice: first for matching and second for
the score.  One idea to alter option #3 is to make the argument an implementation of a single-method
interface that accepts the distance valueSource and returns a valueSource for the score.
> Spatial distance relevancy should use score of 1/distance
> ---------------------------------------------------------
>                 Key: LUCENE-4208
>                 URL:
>             Project: Lucene - Core
>          Issue Type: New Feature
>          Components: modules/spatial
>            Reporter: David Smiley
>             Fix For: 4.0
> The SpatialStrategy.makeQuery() at the moment uses the distance as the score (although
some strategies -- TwoDoubles if I recall might not do anything which would be a bug).  The
distance is a poor value to use as the score because the score should be related to relevancy,
and the distance itself is inversely related to that.  A score of 1/distance would be nice.
 Another alternative is earthCircumference/2 - distance, although I like 1/distance better.
 Maybe use a different constant than 1.
> Credit: this is Chris Male's idea.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

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

View raw message