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 isWITHINthe 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 thequeryBufferconstructor 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.
-
-
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(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 ShapebufferShape(Shape shape, double distErr)Returns a new shape that is larger than shape by at distErr.booleanequals(Object o)Override and implement query instance equivalence properly in a subclass.protected DocIdSetgetDocIdSet(LeafReaderContext context)inthashCode()Override and implement query hash code properly in a subclass.StringtoString(String field)Prints a query to a string, withfieldassumed to be the default field and omitted.-
Methods inherited from class org.apache.lucene.spatial.prefix.AbstractPrefixTreeQuery
createWeight, visit
-
Methods inherited from class org.apache.lucene.search.Query
classHash, rewrite, sameClassAs, toString
-
-
-
-
Constructor Detail
-
WithinPrefixTreeQuery
public WithinPrefixTreeQuery(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).queryBufferis 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)
Description copied from class:QueryOverride and implement query instance equivalence properly in a subclass. This is required so thatQueryCacheworks 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.- Overrides:
equalsin classAbstractPrefixTreeQuery- See Also:
Query.sameClassAs(Object),Query.classHash()
-
hashCode
public int hashCode()
Description copied from class:QueryOverride and implement query hash code properly in a subclass. This is required so thatQueryCacheworks properly.- Overrides:
hashCodein classAbstractPrefixTreeQuery- See Also:
Query.equals(Object)
-
toString
public String toString(String field)
Description copied from class:QueryPrints a query to a string, withfieldassumed to be the default field and omitted.
-
bufferShape
protected Shape bufferShape(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:
getDocIdSetin classAbstractPrefixTreeQuery- Throws:
IOException
-
-