[
https://issues.apache.org/jira/browse/LUCENE-6481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael McCandless updated LUCENE-6481:
---------------------------------------
Attachment: LUCENE-6481.patch
New patch, starting from [~nknize]'s and then folding in the evilish random
test I added for LUCENE-6477 ... maybe this can help debug why there are false
negatives?
E.g. with this patch when I run:
{noformat}
ant test -Dtestcase=TestGeoPointQuery -Dtestmethod=testRandomTiny
-Dtests.seed=F1E43F53709BFF82 -Dtests.verbose=true
{noformat}
It fails with this:
{noformat}
[junit4] 2> NOTE: reproduce with: ant test -Dtestcase=TestGeoPointQuery
-Dtests.method=testRandomTiny -Dtests.seed=F1E43F53709BFF82
-Dtests.locale=en_US -Dtests.timezone=Africa/Lome -Dtests.asserts=true
-Dtests.file.encoding=UTF-8
[junit4] FAILURE 2.91s | TestGeoPointQuery.testRandomTiny <<<
[junit4] > Throwable #1: java.lang.AssertionError: id=0 docID=0
lat=-27.180279388889545 lon=-167.14191331870592 expected true but got: false
deleted?=false
[junit4] > at
__randomizedtesting.SeedInfo.seed([F1E43F53709BFF82:B8A3E1152EBAC72E]:0)
[junit4] > at
org.apache.lucene.search.TestGeoPointQuery.verify(TestGeoPointQuery.java:301)
[junit4] > at
org.apache.lucene.search.TestGeoPointQuery.doTestRandom(TestGeoPointQuery.java:203)
[junit4] > at
org.apache.lucene.search.TestGeoPointQuery.testRandomTiny(TestGeoPointQuery.java:125)
[junit4] > at java.lang.Thread.run(Thread.java:745)
{noformat}
The test case should be easy-ish to debug: it only indexes at most a few 10s of
points...
> Improve GeoPointField type to only visit high precision boundary terms
> -----------------------------------------------------------------------
>
> Key: LUCENE-6481
> URL: https://issues.apache.org/jira/browse/LUCENE-6481
> Project: Lucene - Core
> Issue Type: Improvement
> Components: core/index
> Reporter: Nicholas Knize
> Attachments: LUCENE-6481.patch, LUCENE-6481_WIP.patch
>
>
> Current GeoPointField [LUCENE-6450 |
> https://issues.apache.org/jira/browse/LUCENE-6450] computes a set of ranges
> along the space-filling curve that represent a provided bounding box. This
> determines which terms to visit in the terms dictionary and which to skip.
> This is suboptimal for large bounding boxes as we may end up visiting all
> terms (which could be quite large).
> This incremental improvement is to improve GeoPointField to only visit high
> precision terms in boundary ranges and use the postings list for ranges that
> are completely within the target bounding box.
> A separate improvement is to switch over to auto-prefix and build an
> Automaton representing the bounding box. That can be tracked in a separate
> issue.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]