lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Willnauer <simon.willna...@googlemail.com>
Subject Re: CustomScoreQuery numerical precision problem
Date Thu, 21 May 2009 00:11:38 GMT
Hi there

On Tue, May 19, 2009 at 8:32 AM, ac <chy1013m1@gmail.com> wrote:
> hello,
> I am using CustomScoreQuery for result ranking.
> A field of my documents is parsable as an integer value, the magnide
> of which exceeds the precision of the float type.
> A sample value of this field is 24118569
>
> However, due to the nature of CustomScoreQuery, a cast from int to
> float is performed during the scoring( in the class
> IntFieldSource), this cause the number from the example to become
> 24118568 (off by 1) (on a Pentium D 3.2GHz, 32bit OpenSuse 10.3, JDK
> 1.6.0_13)
> This is problematic, because this value is then used as the key to
> perform a database query.
>
> I think I can get that cache from IntFieldSource or make my own, then
> just lookup that array during customScore().
That's the way to go! Make sure you override public float
customScore(int doc, float subQueryScore, float valSrcScores[]) if you
have more than one ValueSourceQueries.

simon

>
> Any other suggestions ?
>
>
> thanks!
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message