public class WithinPrefixTreeQuery extends AbstractVisitingPrefixTreeQuery
WITHIN
the query shape. It works by looking at cells outside of the query
shape to ensure documents there are excluded. By default, it will
examine all cells, and it's fairly slow. If you know that the indexed shapes
are never comprised of multiple disjoint parts (which also means it is not multi-valued),
then you can pass SpatialPrefixTree.getDistanceForLevel(maxLevels)
as
the queryBuffer
constructor parameter to minimally look this distance
beyond the query shape's edge. Even if the indexed shapes are sometimes
comprised of multiple disjoint parts, you might want to use this option with
a large buffer as a faster approximation with minimal false-positives.AbstractVisitingPrefixTreeQuery.VisitorTemplate, AbstractVisitingPrefixTreeQuery.VNode
AbstractPrefixTreeQuery.BaseTermsEnumTraverser
prefixGridScanLevel
detailLevel, fieldName, grid, queryShape
Constructor and Description |
---|
WithinPrefixTreeQuery(org.locationtech.spatial4j.shape.Shape queryShape,
java.lang.String fieldName,
SpatialPrefixTree grid,
int detailLevel,
int prefixGridScanLevel,
double queryBuffer)
|
Modifier and Type | Method and Description |
---|---|
protected org.locationtech.spatial4j.shape.Shape |
bufferShape(org.locationtech.spatial4j.shape.Shape shape,
double distErr)
Returns a new shape that is larger than shape by at distErr.
|
boolean |
equals(java.lang.Object o)
Override and implement query instance equivalence properly in a subclass.
|
protected DocIdSet |
getDocIdSet(LeafReaderContext context) |
int |
hashCode()
Override and implement query hash code properly in a subclass.
|
java.lang.String |
toString(java.lang.String field)
Prints a query to a string, with
field assumed to be the
default field and omitted. |
createWeight
classHash, rewrite, sameClassAs, toString
public WithinPrefixTreeQuery(org.locationtech.spatial4j.shape.Shape queryShape, java.lang.String fieldName, SpatialPrefixTree grid, int detailLevel, int prefixGridScanLevel, double queryBuffer)
AbstractVisitingPrefixTreeQuery.AbstractVisitingPrefixTreeQuery(org.locationtech.spatial4j.shape.Shape, String, org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree, int, int)
.
queryBuffer
is the (minimum) distance beyond the query shape edge
where non-matching documents are looked for so they can be excluded. If
-1 is used then the whole world is examined (a good default for correctness).public boolean equals(java.lang.Object o)
Query
QueryCache
works properly.
Typically a query will be equal to another only if it's an instance of
the same class and its document-filtering properties are identical that other
instance. Utility methods are provided for certain repetitive code.equals
in class AbstractPrefixTreeQuery
Query.sameClassAs(Object)
,
Query.classHash()
public int hashCode()
Query
QueryCache
works properly.hashCode
in class AbstractPrefixTreeQuery
Query.equals(Object)
public java.lang.String toString(java.lang.String field)
Query
field
assumed to be the
default field and omitted.protected org.locationtech.spatial4j.shape.Shape bufferShape(org.locationtech.spatial4j.shape.Shape shape, double distErr)
protected DocIdSet getDocIdSet(LeafReaderContext context) throws java.io.IOException
getDocIdSet
in class AbstractPrefixTreeQuery
java.io.IOException
Copyright © 2000–2019 The Apache Software Foundation. All rights reserved.