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
      
      
   
  
    Inherited Members
    
    
    
    
    
    
    
    
    
      System.Object.Equals(System.Object)
    
    
      System.Object.Equals(System.Object, System.Object)
    
    
      System.Object.GetHashCode()
    
    
      System.Object.GetType()
    
    
      System.Object.MemberwiseClone()
    
    
      System.Object.ReferenceEquals(System.Object, System.Object)
    
   
  
  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
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | Lucene.Net.Documents.FieldType | 
         | 
      
    
  
  
    |
    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 | 
      
    
    
      
        | Spatial4n.Core.Shapes.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 | 
      
    
    
      
        | Spatial4n.Core.Shapes.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 | 
      
    
    
      
        | Spatial4n.Core.Shapes.IPoint | 
        queryPoint | 
         | 
      
      
        | System.Double | 
        multiplier | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | Lucene.Net.Queries.Function.ValueSource | 
         | 
      
    
  
  Overrides