David Smiley created LUCENE-5692:
------------------------------------

             Summary: Deprecate spatial DisjointSpatialFilter
                 Key: LUCENE-5692
                 URL: https://issues.apache.org/jira/browse/LUCENE-5692
             Project: Lucene - Core
          Issue Type: Bug
          Components: modules/spatial
    Affects Versions: 5.0
            Reporter: David Smiley


The spatial predicate "IsDisjointTo" is almost the same as the inverse of 
"Intersects", except that it shouldn't match documents without spatial data.  
In another sense it's as if the query shape were inverted.

DisjointSpatialFilter is a utility filter that works (or worked, rather) by 
using the FieldCache to see which documents have spatial data 
(getDocsWithField()). Calculating that was probably very slow but it was at 
least cacheable. Since LUCENE-5666 (v5/trunk only), Rob replaced this to use 
DocValues.  However for some SpatialStrategies (PrefixTree based) it wouldn't 
make any sense to use DocValues *just* so that at search time you could call 
getDocsWithField() when there's no other need for the un-inversion (e.g. no 
need to lookup terms by document).

Perhaps an immediate fix is simply to revert the change made to 
DisjointSpatialFilter so that it uses the FieldCache again, if that works 
(though it's not public?).  But stepping back a bit, this DisjointSpatialFilter 
is really something unfortunate that doesn't work as well as it could because 
it's not at the level of Solr or ES -- that is, there's no access to a 
filter-cache.  So I propose I simply remove it, and if a user wants to do this 
for real, they should index a boolean field marking wether there's spatial data 
and then combine that with a NOT and Intersects, in a straight-forward way.  

Alternatively, some sort of inverting query shape could be developed, although 
it wouldn't work with the SpatialPrefixTree technique because there is no edge 
distinction -- the edge matches normally and notwithstanding changes to RPT 
algorithms it would also match the edge of an inverted shape.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to