Robert Muir created LUCENE-7061:
-----------------------------------

             Summary: fix remaining api issues with XYZPoint classes
                 Key: LUCENE-7061
                 URL: https://issues.apache.org/jira/browse/LUCENE-7061
             Project: Lucene - Core
          Issue Type: Bug
            Reporter: Robert Muir
         Attachments: LUCENE-7061.patch

There are still some major problems today:

XYZPoint.newRangeQuery has "brain damage" from variable length terms. nulls for 
open ranges make no sense: these are fixed-width types and instead you can use 
things like Integer.maxValue. Removing the nulls is safe, as we can just switch 
to primitive types instead of boxed types.

XYZPoint.newRangeQuery requires boolean arrays for inclusive/exclusive, but 
thats just more brain damage. If you want to exclude an integer, you just 
subtract 1 from it and other simple stuff.

For the apis, this means Instead of:
{code}
public static Query newRangeQuery(String field, Long lowerValue, boolean 
lowerInclusive, Long upperValue, boolean upperInclusive);
  
public static Query newMultiRangeQuery(String field, Long[] lowerValue, boolean 
lowerInclusive[], Long[] upperValue, boolean upperInclusive[]);
{code}

we have:

{code}
public static Query newRangeQuery(String field, long lowerValue, long 
upperValue);
public static Query newRangeQuery(String field, long[] lowerValue, long[] 
upperValue);
{code}

PointRangeQuery is horribly complex due to these nulls and boolean arrays, and 
need not be. Now it only works "inclusive" and is much simpler.

XYZPoint.newSetQuery throws IOException, just creating the query. This is very 
confusing and unnecessary (no i/o happens).

LatLonPoint's bounding box query is not inclusive like the other geo. And the 
test does not fail!

I also found a few missing checks here and there while cleaning up.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to