Package org.apache.lucene.spatial.prefix
Class WithinPrefixTreeQuery
- java.lang.Object
-
- org.apache.lucene.search.Query
-
- org.apache.lucene.spatial.prefix.AbstractPrefixTreeQuery
-
- org.apache.lucene.spatial.prefix.AbstractVisitingPrefixTreeQuery
-
- org.apache.lucene.spatial.prefix.WithinPrefixTreeQuery
-
public class WithinPrefixTreeQuery extends AbstractVisitingPrefixTreeQuery
Finds docs where its indexed shape isWITHIN
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 passSpatialPrefixTree.getDistanceForLevel(maxLevels)
as thequeryBuffer
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.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.spatial.prefix.AbstractVisitingPrefixTreeQuery
AbstractVisitingPrefixTreeQuery.VisitorTemplate, AbstractVisitingPrefixTreeQuery.VNode
-
Nested classes/interfaces inherited from class org.apache.lucene.spatial.prefix.AbstractPrefixTreeQuery
AbstractPrefixTreeQuery.BaseTermsEnumTraverser
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.spatial.prefix.AbstractVisitingPrefixTreeQuery
prefixGridScanLevel
-
Fields inherited from class org.apache.lucene.spatial.prefix.AbstractPrefixTreeQuery
detailLevel, fieldName, grid, queryShape
-
-
Constructor Summary
Constructors Constructor Description WithinPrefixTreeQuery(org.locationtech.spatial4j.shape.Shape queryShape, String fieldName, SpatialPrefixTree grid, int detailLevel, int prefixGridScanLevel, double queryBuffer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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(Object o)
protected DocIdSet
getDocIdSet(LeafReaderContext context)
int
hashCode()
String
toString(String field)
-
Methods inherited from class org.apache.lucene.spatial.prefix.AbstractPrefixTreeQuery
createWeight, visit
-
-
-
-
Constructor Detail
-
WithinPrefixTreeQuery
public WithinPrefixTreeQuery(org.locationtech.spatial4j.shape.Shape queryShape, String fieldName, SpatialPrefixTree grid, int detailLevel, int prefixGridScanLevel, double queryBuffer)
SeeAbstractVisitingPrefixTreeQuery(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).
-
-
Method Detail
-
equals
public boolean equals(Object o)
- Overrides:
equals
in classAbstractPrefixTreeQuery
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classAbstractPrefixTreeQuery
-
bufferShape
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.
-
getDocIdSet
protected DocIdSet getDocIdSet(LeafReaderContext context) throws IOException
- Specified by:
getDocIdSet
in classAbstractPrefixTreeQuery
- Throws:
IOException
-
-