lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From poeta simbolista <>
Subject Re: FieldCacheImpl mistake?
Date Thu, 15 Feb 2007 10:08:49 GMT

Chris Hostetter wrote:
> :   i suggest it could be defined a (e.g.) NOT_FOUND_FLOAT_VALUE,
> modifiable,
> : so it does not necessarily have to be 0. And used for initialise the
> array
> : of floats before processing (or do it on the loop if better performance
> can
> : be reached).
> :   I have set it to Float.NEGATIVE_INFINITY
> this sounds like a generally usable feature ... although we wouldn't want
> it to be a single for hte whole field cache because then code expecting
> the defaults to be Float.NEGATIVE_INFINITY could be suprised if other code
> (perhaps even dealing with different fields) populated the cache first.
> the ideal way to do this might be to add a "getDefault()" method to the
> IntParser and FloatParser interfaces ... but thta wouldn't be backwards
> compatible.

The default should be 0 to keep being backwards compatible. Then just
provide a means to change that setting. So for my code I just could add: 
     setInitialValue(Float.NEGATIVE_INFINITY); for example.
Being the INITIAL_VALUE thingy set initially to 0. That would be backwards

Chris Hostetter wrote:
> one (kludgy) possibility would be to use a single call to
> FloatParser.parseFloat(null) to determine what value to use -- if it
> throws an exception use "0.0", otherwise use whatever it returns, what are
> the odds that an existing FloatParser that doesn't balk on null isn't
> going to return something that makes sense as a default?

The parser is not used in those cases that there is no field. My first
approach on all this, before looking at the code, was to create a new
FloatParser that returns NEGATIVE_INFINITY in those cases it throws an
exception. When I saw there was no difference with the default
implementation (which just uses Float.parseFloat(String s) ) then I began
diving into the code.

I am for the previous solution though. The setInitialFloatValue(Float)
thingy. And same for Ints! :)


View this message in context:
Sent from the Lucene - Java Users mailing list archive at

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

View raw message