Class WithinPrefixTreeFilter
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.
Note
This API is experimental and might change in incompatible ways in the next release.
Inheritance
Inherited Members
Namespace: Lucene.Net.Spatial.Prefix
Assembly: Lucene.Net.Spatial.dll
Syntax
public class WithinPrefixTreeFilter : AbstractVisitingPrefixTreeFilter
Constructors
WithinPrefixTreeFilter(IShape, string, SpatialPrefixTree, int, int, IShape?)
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.
Note
This API is experimental and might change in incompatible ways in the next release.
Declaration
protected WithinPrefixTreeFilter(IShape queryShape, string fieldName, SpatialPrefixTree grid, int detailLevel, int prefixGridScanLevel, IShape? bufferedQueryShape)
Parameters
Type | Name | Description |
---|---|---|
IShape | queryShape | |
string | fieldName | |
SpatialPrefixTree | grid | |
int | detailLevel | |
int | prefixGridScanLevel | |
IShape | bufferedQueryShape |
WithinPrefixTreeFilter(IShape, string, SpatialPrefixTree, int, int, double)
See AbstractVisitingPrefixTreeFilter(IShape, string, 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).
Declaration
public WithinPrefixTreeFilter(IShape queryShape, string fieldName, SpatialPrefixTree grid, int detailLevel, int prefixGridScanLevel, double queryBuffer)
Parameters
Type | Name | Description |
---|---|---|
IShape | queryShape | |
string | fieldName | |
SpatialPrefixTree | grid | |
int | detailLevel | |
int | prefixGridScanLevel | |
double | queryBuffer |
Fields
m_bufferedQueryShape
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.
Note
This API is experimental and might change in incompatible ways in the next release.
Declaration
protected readonly IShape? m_bufferedQueryShape
Field Value
Type | Description |
---|---|
IShape |
Methods
BufferShape(IShape, double)
Returns a new shape that is larger than shape by at distErr.
Declaration
protected virtual IShape BufferShape(IShape shape, double distErr)
Parameters
Type | Name | Description |
---|---|---|
IShape | shape | |
double | distErr |
Returns
Type | Description |
---|---|
IShape |
GetDocIdSet(AtomicReaderContext, IBits)
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.
Note
This API is experimental and might change in incompatible ways in the next release.
Declaration
public override DocIdSet? GetDocIdSet(AtomicReaderContext context, IBits acceptDocs)
Parameters
Type | Name | Description |
---|---|---|
AtomicReaderContext | context | |
IBits | acceptDocs |
Returns
Type | Description |
---|---|
DocIdSet |
Overrides
Exceptions
Type | Condition |
---|---|
IOException |