Class PrefixTreeStrategy
An abstract SpatialStrategy based on SpatialPrefixTree. The two
subclasses are RecursivePrefixTreeStrategy and
TermQueryPrefixTreeStrategy. This strategy is most effective as a fast
approximate spatial search filter.
Characteristics:
- Can index any shape; however only
RecursivePrefixTreeStrategy
can effectively search non-point shapes.
- Can index a variable number of shapes per field value. This strategy
can do it via multiple calls to CreateIndexableFields(IShape)
for a document or by giving it some sort of Shape aggregate (e.g. NTS
WKT MultiPoint). The shape's boundary is approximated to a grid precision.
- Can query with any shape. The shape's boundary is approximated to a grid
precision.
- Only Intersects
is supported. If only points are indexed then this is effectively equivalent
to IsWithin.
- The strategy supports MakeDistanceValueSource(IPoint, Double)
even for multi-valued data, so long as the indexed data is all points; the
behavior is undefined otherwise. However,
it will likely be removed in
the future
in lieu of using another strategy with a more scalable
implementation. Use of this call is the only
circumstance in which a cache is used. The cache is simple but as such
it doesn't scale to large numbers of points nor is it real-time-search
friendly.
Implementation:
The
SpatialPrefixTree
does most of the work, for example returning
a list of terms representing grids of various sizes for a supplied shape.
An important
configuration item is
DistErrPct which balances
shape precision against scalability. See those docs.
This is a Lucene.NET INTERNAL API, use at your own risk
Inheritance
System.Object
PrefixTreeStrategy
Assembly: Lucene.Net.Spatial.dll
Syntax
public abstract class PrefixTreeStrategy : SpatialStrategy
Constructors
|
Improve this Doc
View Source
PrefixTreeStrategy(SpatialPrefixTree, String, Boolean)
Declaration
public PrefixTreeStrategy(SpatialPrefixTree grid, string fieldName, bool simplifyIndexedCells)
Parameters
Type |
Name |
Description |
SpatialPrefixTree |
grid |
|
System.String |
fieldName |
|
System.Boolean |
simplifyIndexedCells |
|
Fields
|
Improve this Doc
View Source
FIELD_TYPE
Indexed, tokenized, not stored.
Declaration
public static readonly FieldType FIELD_TYPE
Field Value
|
Improve this Doc
View Source
m_defaultFieldValuesArrayLen
Declaration
protected int m_defaultFieldValuesArrayLen
Field Value
Type |
Description |
System.Int32 |
|
|
Improve this Doc
View Source
m_distErrPct
Declaration
protected double m_distErrPct
Field Value
Type |
Description |
System.Double |
|
|
Improve this Doc
View Source
m_grid
Declaration
protected readonly SpatialPrefixTree m_grid
Field Value
|
Improve this Doc
View Source
m_simplifyIndexedCells
Declaration
protected readonly bool m_simplifyIndexedCells
Field Value
Type |
Description |
System.Boolean |
|
Properties
|
Improve this Doc
View Source
DefaultFieldValuesArrayLen
A memory hint used by MakeDistanceValueSource(IPoint)
for how big the initial size of each Document's array should be. The
default is 2. Set this to slightly more than the default expected number
of points per document.
Declaration
public virtual int DefaultFieldValuesArrayLen { get; set; }
Property Value
Type |
Description |
System.Int32 |
|
|
Improve this Doc
View Source
DistErrPct
The default measure of shape precision affecting shapes at index and query
times.
Declaration
public virtual double DistErrPct { get; set; }
Property Value
Type |
Description |
System.Double |
|
See Also
|
Improve this Doc
View Source
Grid
Declaration
public virtual SpatialPrefixTree Grid { get; }
Property Value
Methods
|
Improve this Doc
View Source
CreateIndexableFields(IShape)
Declaration
public override Field[] CreateIndexableFields(IShape shape)
Parameters
Type |
Name |
Description |
IShape |
shape |
|
Returns
Overrides
|
Improve this Doc
View Source
CreateIndexableFields(IShape, Double)
Declaration
public virtual Field[] CreateIndexableFields(IShape shape, double distErr)
Parameters
Type |
Name |
Description |
IShape |
shape |
|
System.Double |
distErr |
|
Returns
|
Improve this Doc
View Source
MakeDistanceValueSource(IPoint, Double)
Declaration
public override ValueSource MakeDistanceValueSource(IPoint queryPoint, double multiplier)
Parameters
Type |
Name |
Description |
IPoint |
queryPoint |
|
System.Double |
multiplier |
|
Returns
Overrides