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 is `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.
  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)` | See `AbstractVisitingPrefixTreeQuery(org.locationtech.spatial4j.shape.Shape, String, org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree, int, int)`.

  - ### 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`

    - ### Methods inherited from class org.apache.lucene.search.Query

      `classHash, rewrite, rewrite, sameClassAs, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### WithinPrefixTreeQuery

          public WithinPrefixTreeQuery​(org.locationtech.spatial4j.shape.Shape queryShape,
                                       String fieldName,
                                       SpatialPrefixTree grid,
                                       int detailLevel,
                                       int prefixGridScanLevel,
                                       double queryBuffer)

      See `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).

  - ### Method Detail

    - #### equals

          public boolean equals​(Object o)

      Overrides:
        `equals` in class `AbstractPrefixTreeQuery`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `AbstractPrefixTreeQuery`

    - #### toString

          public String toString​(String field)

      Specified by:
        `toString` in class `Query`

    - #### 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 class `AbstractPrefixTreeQuery`
      Throws:
        `IOException`