C# Class Lucene.Net.Spatial.Prefix.PrefixTreeStrategy

An abstract SpatialStrategy based on Lucene.Net.Spatial.Prefix.Tree.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(Shape) for a document or by giving it some sort of Shape aggregate (e.g. JTS 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 Lucene.Net.Spatial.Query.SpatialOperation.Intersects is supported. If only points are indexed then this is effectively equivalent to IsWithin.
  • The strategy supports MakeDistanceValueSource(Point) 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 Lucene.Net.Spatial.Prefix.Tree.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 SetDistErrPct(double) which balances shape precision against scalability. See those javadocs.
Inheritance: SpatialStrategy
ファイルを表示 Open project: apache/lucenenet

Public Properties

Property Type Description
FIELD_TYPE Lucene.Net.Documents.FieldType

Protected Properties

Property Type Description
defaultFieldValuesArrayLen int
distErrPct double
grid Lucene.Net.Spatial.Prefix.Tree.SpatialPrefixTree
simplifyIndexedCells bool

Public Methods

Method Description
CreateIndexableFields ( IShape shape ) : Lucene.Net.Documents.Field[]
CreateIndexableFields ( IShape shape, double distErr ) : Lucene.Net.Documents.Field[]
MakeDistanceValueSource ( IPoint queryPoint, double multiplier ) : Lucene.Net.Search.Function.ValueSource
PrefixTreeStrategy ( SpatialPrefixTree grid, string fieldName, bool simplifyIndexedCells ) : System.Collections.Concurrent

Private Methods

Method Description
PrefixTreeStrategy ( ) : System.Collections.Concurrent

Method Details

CreateIndexableFields() public method

public CreateIndexableFields ( IShape shape ) : Lucene.Net.Documents.Field[]
shape IShape
return Lucene.Net.Documents.Field[]

CreateIndexableFields() public method

public CreateIndexableFields ( IShape shape, double distErr ) : Lucene.Net.Documents.Field[]
shape IShape
distErr double
return Lucene.Net.Documents.Field[]

MakeDistanceValueSource() public method

public MakeDistanceValueSource ( IPoint queryPoint, double multiplier ) : Lucene.Net.Search.Function.ValueSource
queryPoint IPoint
multiplier double
return Lucene.Net.Search.Function.ValueSource

PrefixTreeStrategy() public method

public PrefixTreeStrategy ( SpatialPrefixTree grid, string fieldName, bool simplifyIndexedCells ) : System.Collections.Concurrent
grid Lucene.Net.Spatial.Prefix.Tree.SpatialPrefixTree
fieldName string
simplifyIndexedCells bool
return System.Collections.Concurrent

Property Details

FIELD_TYPE public_oe static_oe property

Indexed, tokenized, not stored.
public static FieldType,Lucene.Net.Documents FIELD_TYPE
return Lucene.Net.Documents.FieldType

defaultFieldValuesArrayLen protected_oe property

protected int defaultFieldValuesArrayLen
return int

distErrPct protected_oe property

protected double distErrPct
return double

grid protected_oe property

protected SpatialPrefixTree,Lucene.Net.Spatial.Prefix.Tree grid
return Lucene.Net.Spatial.Prefix.Tree.SpatialPrefixTree

simplifyIndexedCells protected_oe property

protected bool simplifyIndexedCells
return bool