[
https://issues.apache.org/jira/browse/LUCENE-8012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alan Woodward updated LUCENE-8012:
----------------------------------
Attachment: LUCENE-8012.patch
Updated patch:
- added a null check to the Explanation constructor
- all DoubleValuesSource.explain() implementations now use doubles
- tests now use Number comparisons or .doubleValue() where possible
There are still quite a few places in tests that explicitly ask for floats,
most of which are to do with checking scores, so I think it's OK to check
against floatValue() there? One place I haven't touched is
CheckHits.verifyExplanation() - I ran into problems trying to convert this to
check Number rather than float, due to things like DOUBLE(0) and FLOAT(0)
comparing as different.
We should open a separate issue to add explain() to LongValuesSource and
enforce .longValue() to be used there
> Improve Explanation class
> -------------------------
>
> Key: LUCENE-8012
> URL: https://issues.apache.org/jira/browse/LUCENE-8012
> Project: Lucene - Core
> Issue Type: Improvement
> Reporter: Robert Muir
> Labels: newdev
> Attachments: LUCENE-8012.patch, LUCENE-8012.patch
>
>
> Explanation class is currently nice and simple, and float matches the scoring
> api, but this does not work well for debugging numerical errors of internal
> calculations (it usually makes practical sense to use 64-bit double to avoid
> issues).
> Also it makes for nasty formatting of integral values such as number of
> tokens in the collection or even document's length, its just noise to see
> {{10.0}} there instead of {{10}}, and scientific notation for e.g. number of
> documents is just annoying.
> One idea is to take Number instead of float? Then you could pass in the
> correct numeric type (int,long,double,float) for internal calculations,
> parameters, statistics, etc, and output would look nice.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]