Lucene空间策略

Lucene空间策略,lucene,geospatial,spatial,Lucene,Geospatial,Spatial,我有以下用例: 我希望能够从给定的用户lat long搜索半径为x kms的特定圆圈内的lucene文档 我还想按距离对文档进行排序 我还需要稍后将distnace值显示给用户 哪种空间策略最适合我,而无需编制任何额外索引并考虑性能。根据您的要求,我认为最好的选择可能是点向量策略,这是最简单的一种,同时也满足您的条件: 在两个数值字段中表示点的简单空间策略。 该策略的最佳特性是适当的距离排序 特点: 仅索引点;每个字段值只有一个 可以按矩形或圆形进行查询 支持SpatialOperation.

我有以下用例:

我希望能够从给定的用户lat long搜索半径为x kms的特定圆圈内的lucene文档

我还想按距离对文档进行排序

我还需要稍后将distnace值显示给用户


哪种空间策略最适合我,而无需编制任何额外索引并考虑性能。

根据您的要求,我认为最好的选择可能是
点向量策略
,这是最简单的一种,同时也满足您的条件:

在两个数值字段中表示点的简单空间策略。 该策略的最佳特性是适当的距离排序

特点:

  • 仅索引点;每个字段值只有一个
  • 可以按矩形或圆形进行查询
  • 支持SpatialOperation.Intersects和SpatialOperation.IsWithin
  • 需要SpatialStrategy.makeDistanceValueSource的DocValues(org.locationtech.spatial4j.shape.Point) 用圆圈搜索
是的,这将要求你有DocValues索引,但如果我理解正确,没有一个空间策略将免费提供所需的功能