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]